#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin>>n;
    int a[100][100]={0},d=0,i=1,j=1,s=1;
    int di[] = {0,1,0,-1};
    int dj[] = {1,0,-1,0};
    while (s<=n*n){
        a[i][j] = s++;
        int ni=i+di[d];
        int nj=j+dj[d];
        if (ni<1||ni>n||nj<1||nj>n||a[ni][nj]!=0){
            d=(d+1)%4;
            ni=i+di[d];
            nj=j+dj[d];
        }
        i = ni;
        j = nj;
    }
    for (i = 1; i <= n; i++) {
        for (j = 1; j <= n; j++) {
            cout << setw(3) << a[i][j];
        }
        cout << endl;
    }
    
    return 0;
}
/**************************************************************
	Problem: 1208
	User: panyuchen
	Language: C++
	Result: Accepted
	Time:9 ms
	Memory:2072 kb
****************************************************************/