#include using namespace std; typedef long long ll; #define REP(i,n) for(int i=0; i #define VLL vector #define VVI vector> #define VVLL vector> #define VC vector #define VS vector #define VVC vector> #define fore(i,a) for(auto &i:a) typedef pair P; template bool chmax(T &a, T b) { if (a < b) { a = b; return true; } return false; } template bool chmin(T &a, T b) { if (a > b) { a = b; return true; } return false; } const int INF = 2147483647; const ll INFL = 9223372036854775807; const ll mod = 1000000007; VI dx = { 1,0,-1,0 }; VI dy = { 0,1,0,-1 }; int main() { int n; cin >> n; VVI v(n + 2, VI(n + 2, -1)); REP(i, n + 2) { v[i][0] = v[0][i] = v[i][n + 1] = v[n + 1][i] = 0; } int d = 0; int y = 1; int x = 1; int cnt = 1; REP(i, n*n*n) { v[y][x] = cnt; int ny = y + dy[d]; int nx = x + dx[d]; if (v[ny][nx] != -1) { d = (d + 1) % 4; continue; } else { y = ny; x = nx; cnt++; } } FOR(i, 1, n + 1) { FOR(j, 1, n + 1) { cout << setw(3) << setfill('0') << v[i][j]; if (j != n)cout << ' '; else cout << endl; } } return 0; }