n = int(input()) ls = [] for i in range(n): for j in range(n): ls.append([i,j]) ls.remove([0,0]) a = [[0,1], [1,0], [0,-1], [-1,0]] ps = [0,0] ts = [0,0] sq = [[0,0]] ap = 0 while len(ls) > 0: ts[0] = ps[0]+a[ap%4][0] ts[1] = ps[1]+a[ap%4][1] if ts in ls: ps = ts.copy() sq.append(ps) ls.remove(ps) else: ap += 1 ts[0] = ps[0]+a[ap%4][0] ts[1] = ps[1]+a[ap%4][1] ps = ts.copy() sq.append(ps) ls.remove(ps) tmp=[] for i in range(n): tmp.append([]) for j in range(n): tmp[i].append([]) numb = [str(i+1).zfill(3) for i in range(n**2)] for i,j in zip(sq,numb): tmp[i[0]][i[1]] = j for i in range(n): print(" ".join(tmp[i]))