#!/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()