#include using namespace std; #define _p(...) (void)printf(__VA_ARGS__) #define forr(x,arr) for(auto&& x:arr) #define _overload3(_1,_2,_3,name,...) name #define _rep2(i,n) _rep3(i,0,n) #define _rep3(i,a,b) for(int i=int(a);i=int(a);i--) #define rrep(...) _overload3(__VA_ARGS__,_rrep3,_rrep2,)(__VA_ARGS__) #define ALL(x) (x).begin(), (x).end() #define BIT(n) (1LL<<(n)) #define SZ(x) ((int)(x).size()) #define fst first #define snd second typedef vector vi;typedef vector vvi;typedef pair pii;typedef vector vpii; typedef long long ll; int DY[4] = {0, 1, 0, -1}; int DX[4] = {1, 0, -1, 0}; template inline bool inside(T y, T x, T h, T w) { return 0 <= y && y < h && 0 <= x && x < w; }; void Main() { int N; scanf("%d", &N); int y=0, x=0; vvi M(N, vi(N)); int d = 0; rep(i, 1, N*N+1) { M[y][x] = i; int ny = y + DY[d]; int nx = x + DX[d]; if (!inside(ny, nx, N, N) || M[ny][nx] != 0) { d++; d %= 4; ny = y + DY[d]; nx = x + DX[d]; } //_p("%d:(%d,%d)\n",i,y,x); y = ny; x = nx; } rep(y,N) { rep(x, N) { _p(x+1