#include //const static double de_PI = 3.14159265358979323846; //const static int de_MOD = 1000000007; //const static int de_MAX = 999999999; //const static int de_MIN = -999999999; int main(void) { //std::ifstream in("123.txt"); std::cin.rdbuf(in.rdbuf()); int N = 0; std::cin >> N; std::vector> A(N, std::vector(N)); int num = 1, i = 0, j = 0, count = 0; while (1) { i = j = count; for (; j < N - count; j++) { A[i][j] = num; num++; } if (num > N*N) { break; } i++; j--; for (; i < N - count; i++) { A[i][j] = num; num++; } if (num > N*N) { break; } j--; i--; for (; j >= count; j--) { A[i][j] = num; num++; } if (num > N*N) { break; } i--; j++; for (; i >= count + 1; i--) { A[i][j] = num; num++; } if (num > N*N) { break; } count++; } for (i = 0; i < N; i++) { for (j = 0; j < N - 1; j++) { std::cout << std::setw(3) << std::setfill('0') << A[i][j] << " "; } std::cout << std::setw(3) << std::setfill('0') << A[i][N - 1] << std::endl; } }