def check(x, y):
# 对当前行的所有行进行
for row in range(x):
column = queens[row]
#不能是同一列
if y == column:
return False
#对角线
if abs(x-row) == abs(y-column):
return False
return True
def print_queens():
for row in range(n):
for column in range(queens[row]):
print "0",
print "#",
for column in range(queens[row]+1, n):
print "0",
print
print "----------------"
#放第row行皇后
def queen_solution(row):
#对所有的列进行遍历
for column in range(n):
if check(row, column):
#将皇后放进去
queens[row] = column
if row == n: #最后一行,说明成功了
count +=1 #成功的次数
print_queens()
queens[row] = 0 #设为0,下次重新使用
return
queen_solution(row+1)
queens[row] = 0
n = int(raw_input())
queens = [0 for i in range(n)] # 索引是行,里面的数是列
count = 0
queen_solution(0)