#include using namespace std; const int dx[] = { 0, 1, 0, -1 }; const int dy[] = { 1, 0, -1, 0 }; int in_range( int n, int x, int y ){ return 0 <= x and x < n and 0 <= y and y < n; } signed main(){ int N; cin >> N; vector< vector< int > > G( N, vector< int >( N ) ); int x = 0, y = 0, d = 0; for( int i = 1; i <= N * N; ++i ){ G[ x ][ y ] = i; if( not in_range( N, x + dx[ d ], y + dy[ d ] ) or G[ x + dx[ d ] ][ y + dy[ d ] ] ) ++d, d %= 4; x += dx[ d ], y += dy[ d ]; } for( int i = 0; i < N; ++i ) for( int j = 0; j < N; ++j ) printf( "%03d%c", G[ i ][ j ], " \n"[ j + 1 == N ] ); return 0; }