#!/bin/python3
import sys

def chess (n, i, j):
    memory = set()
    initial = set()
    count = 0
    initial.add((1, 1))
    while len(initial) > 0:
        level = set()
        for item in initial:
            if item == (n, n):
                return count
            if item[0] - i > 0:
                if item[1] - j > 0:
                    if (item[0] - i, item[1] - j) not in memory:
                        memory.add((item[0] - i, item[1] - j))
                        level.add((item[0] - i, item[1] - j))
                if item[1] + j <= n:
                    if (item[0] - i, item[1] + j) not in memory:
                        memory.add((item[0] - i, item[1] + j))
                        level.add((item[0] - i, item[1] + j))
            if item[0] + i <= n:
                if item[1] - j > 0:
                    if (item[0] + i, item[1] - j) not in memory:
                        memory.add((item[0] + i, item[1] - j))
                        level.add((item[0] + i, item[1] - j))
                if item[1] + j <= n:
                    if (item[0] + i, item[1] + j) not in memory:
                        memory.add((item[0] + i, item[1] + j))
                        level.add((item[0] + i, item[1] + j))
            aux = i
            i = j
            j = aux
            if item[0] - i > 0:
                if item[1] - j > 0:
                    if (item[0] - i, item[1] - j) not in memory:
                        memory.add((item[0] - i, item[1] - j))
                        level.add((item[0] - i, item[1] - j))
                if item[1] + j <= n:
                    if (item[0] - i, item[1] + j) not in memory:
                        memory.add((item[0] - i, item[1] + j))
                        level.add((item[0] - i, item[1] + j))
            if item[0] + i <= n:
                if item[1] - j > 0:
                    if (item[0] + i, item[1] - j) not in memory:
                        memory.add((item[0] + i, item[1] - j))
                        level.add((item[0] + i, item[1] - j))
                if item[1] + j <= n:
                    if (item[0] + i, item[1] + j) not in memory:
                        memory.add((item[0] + i, item[1] + j))
                        level.add((item[0] + i, item[1] + j))
            aux = i
            i = j
            j = aux
        initial = level
        count += 1
    return -1


n = int(input().strip())
# your code goes here

for i in range(1, n):
    for j in range(1, n):
        print(chess(n, i, j), end= ' ')
    print()