#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
struct A{
int n;
int recorder;
};
int main(){
int n;
cin>>n;
A t[n][n];
for(int i = 1;i <= n;i ++)
{
for(int j = 1;j <= n;j ++)
{
t[i][j].n = 0;
t[i][j].recorder = 0;
}
}
int k = 1,i = 1,j = 1,sign = 1;
t[1][1].n = 1;
t[1][1].recorder = 1;
while(k<n*n){
k++;
int s = k,a = 0;
while(s){
a++;
s/=10;
}
if(sign==1){
t[i][++j].n = k;
t[i][j].recorder = a;
if(j+1>n||t[i][j+1].n!=0)sign = 2;
continue;
}
else if(sign==2){
t[++i][j].n = k;
t[i][j].recorder = a;
if(i+1>n||t[i+1][j].n!=0)sign = 3;
continue;
}
else if(sign==3){
t[i][--j].n = k;
t[i][j].recorder = a;
if(j-1<1||t[i][j-1].n!=0)sign = 4;
continue;
}
else{
t[--i][j].n = k;
t[i][j].recorder = a;
if(i-1<1||t[i-1][j].n!=0)sign = 1;
continue;
}
}
for(int i = 1;i <= n;i ++)
{
for(int j = 1;j <= n;j ++)
{
while(t[i][j].recorder<3)
{
cout<<" ";
t[i][j].recorder++;
}
cout<<t[i][j].n;
}
cout<<endl;
}
return 0;
}