k = int(input())
bloc = []
bloc = [0 for i in range(k)]
table = [bloc[:] for i in range(k)]
answer_number = 0
def check(matrix,x,y):
    
    for i in range(k):
        if matrix[i][y] == 1: return False
    
    i, j = x-1, y-1
    while i>= 0 and j>=0:
        if matrix[i][j] == 1: return False
        i-=1
        j-=1
    
    i,j = x-1,y+1
    while i>=0 and j<k:
        if matrix[i][j] == 1: return False
        i-=1
        j+=1
    return True
          
def DFS(row):
    
    if row == k :
        global answer_number
        answer_number+=1
        if answer_number < 4:
            for i in range(k):
                for j in range(k):
                    if table[i][j] == 1: print(j+1,end = ' ')
            print()
        return
    
    for i in range(k):
        if check(table,row,i):
            table[row][i] = 1
            DFS(row+1)
            table[row][i] = 0
DFS(0)
print(answer_number)