from collections import deque N = int(input()) L = [[""]*N for i in range(N)] c = 0 d = 0 y = x = 0 visited = [[False]*N for i in range(N)] for i in range(1, N**2+1) : L[y][x] = str(i).zfill(3) visited[y][x] = True if d == 0 : if x+1>=N or visited[y][x+1] : d += 1 if d == 1 : if y+1>=N or visited[y+1][x] : d += 1 if d == 2 : if x-1<0 or visited[y][x-1] : d += 1 if d == 3 : if y-1<0 or visited[y-1][x] : d = 0 if d == 0 : x += 1 elif d == 1 : y += 1 elif d == 2 : x -= 1 else : y -= 1 for i in range(N) : print(*L[i])