N = int(input()) s = [['' for j in range(N)]for i in range(N)] used = [[False for j in range(N)] for i in range(N)] dy = [0,1,0,-1] dx = [1,0,-1,0] q = [[0,0]] it,k = 0,1 while len(q) > 0: p = q.pop(0) used[p[0]][p[1]] = True s[p[0]][p[1]] = '%03d' % k k += 1 ny = p[0] + dy[it] nx = p[1] + dx[it] if ny < 0 or ny >= N or nx < 0 or nx >= N or used[ny][nx]: it = (it + 1) % 4 ny = p[0] + dy[it] nx = p[1] + dx[it] if ny < 0 or ny >= N or nx < 0 or nx >= N or used[ny][nx]: break if not used[ny][nx]: q.append([ny,nx]) for i in range(N): print(' '.join(s[i]))