#!/bin/python3

import sys

def set_element(board, position_x, position_y, move_x, move_y, tmp_y, tmp_x):
    if 0 <= tmp_y < len(board) and 0 <= tmp_x < len(board):
        if board[tmp_y][tmp_x] == -1 or board[tmp_y][tmp_x] > board[position_y][position_x] + 1:
            board[tmp_y][tmp_x] = board[position_y][position_x] + 1
            return True
    return False
            # reccur_board(board, tmp_x, tmp_y, move_x, move_y)

def reccur_board(board, position_x, position_y, move_x, move_y):
    positions = [(position_x, position_y)]

    while len(positions) != 0:
        tmp_x, tmp_y = positions.pop(0)
        if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y + move_y, tmp_x + move_x):
            positions.append((tmp_x + move_x, tmp_y + move_y))

        if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y - move_y, tmp_x - move_x):
            positions.append((tmp_x - move_x, tmp_y - move_y))

        if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y - move_y, tmp_x + move_x):
            positions.append((tmp_x + move_x, tmp_y - move_y))

        if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y + move_y, tmp_x - move_x):
            positions.append((tmp_x - move_x, tmp_y + move_y))

        if move_x != move_y:
            if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y + move_x, tmp_x + move_y):
                positions.append((tmp_x + move_y, tmp_y + move_x))

            if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y - move_x, tmp_x - move_y):
                positions.append((tmp_x - move_y, tmp_y - move_x))

            if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y - move_x, tmp_x + move_y):
                positions.append((tmp_x + move_y, tmp_y - move_x))

            if set_element(board, tmp_x, tmp_y, move_x, move_y, tmp_y + move_x, tmp_x - move_y):
                positions.append((tmp_x - move_y, tmp_y + move_x))

n = int(input().strip())
result = [[-2 for x in range(1, n)] for y in range(1, n)]
for move_y in range(1, n):
    for move_x in range(1, n):
        board = [[-1 for x in range(0, n)] for y in range(0, n)]
        board[0][0] = 0
        if result[move_y - 1][move_x - 1] == -2 and result[move_x - 1][move_y - 1] == -2:
            reccur_board(board, 0, 0, move_x, move_y)
            result[move_y - 1][move_x - 1] = str(board[n - 1][n - 1])
            result[move_x - 1][move_y - 1] = str(board[n - 1][n - 1])

for line in result:
    print(' '.join([str(e) for e in line]))