n = int(input()) grid = [[0] * (n + 2) for _ in range(n + 2)] for i in range(n + 2): grid[0][i] = 1 grid[n + 1][i] = 1 grid[i][0] = 1 grid[i][n + 1] = 1 x = 0 y = 1 dx = 1 dy = 0 nex = {(0, 1):(1, 0), (1, 0):(0, -1), (0, -1):(-1, 0), (-1, 0):(0, 1)} for m in range(1, n * n + 1): x += dx y += dy if grid[y][x] != 0: x -= dx y -= dy dy, dx = nex[(dy, dx)] x += dx y += dy grid[y][x] = str(m).zfill(3) for row in grid[1:-1]: print(*row[1:-1])