#include <bits/stdc++.h>
using namespace std;
int a[20][20],t,y,n,i,sb;
int num;
int you()
{
int k=y+1;
if(i>=sb) return 0;
if(a[t][k]==0&&k<=n&&k>=1&&k>=1)
{
i++;
a[t][k]=i;
y++;
return 4;
}else
return 2;
}
int xia()
{
int k=t+1;
if(i>=sb) return 0;
if(a[k][y]==0&&k<=n&&k>=1)
{
i++;
a[k][y]=i;
t++;
return 2;
}else
return 3;
}
int zuo()
{
int k=y-1;
if(i>=sb) return 0;
if(a[t][k]==0&&k<=n&&k>=1)
{
i++;
a[t][k]=i;
y--;
return 3;
}else
return 1;
}
int shang()
{
int k=t-1;
if(i>=sb) return 0;
if(a[k][y]==0&&k<=n&&k>=1)
{
i++;
a[k][y]=i;
t--;
return 1;
}else
return 4;
}
int b,c,d,g;
int main(){
scanf("%d",&n);
t=1,y=1,i=1;sb=n*n;
g=4;
a[1][1]=1;
while(1)
{
if(g==1) g=shang();
if(g==2) g=xia();
if(g==3) g=zuo();
if(g==4) g=you();
if(g==0) break;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if(a[i][j]<=9) printf(" ");
printf("%d",a[i][j]);
if(j!=n) printf(" ");
if(j==n) printf("\n");
}
return 0;
}