#include<iostream>
#include<algorithm>
using namespace std;
const int N=20;
int a[N][N];
int main()
{
int n;
cin>>n;
int m=n/2;
int i,j,stx=0,sty=0,cnt=1,set=1;//cnt记录当前用到的值,set记录第几层,stx,sty记录当前i和j
while(m--)
{
i=stx;
j=sty;
for(j=sty;j<n-set;j++)
{
a[i][j]=cnt++;
}
for(i=stx;i<n-set;i++)
{
a[i][j]=cnt++;
}
for(j;j>stx;j--)
{
a[i][j]=cnt++;
}
for(i;i>sty;i--)
{
a[i][j]=cnt++;
}
stx++,sty++;
set++;
}
if(n%2)a[n/2][n/2]=cnt;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}