#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int a[45][45];
int main()
{
int x,y,i,j,n,k;
memset(a,sizeof(a),0);
scanf("%d",&n);
x=1;
y=(n+1)/2;
a[x][y]=1;
i=2;
while(i<=n*n)
{
if(x==1&&y!=n)
{
x=n;y=y+1;
a[x][y]=i;
}
else if(x!=1&&y==n)
{ x=x-1;y=1;
a[x][y]=i;
}
else if(x==1&&y==n)
{
x=x+1;
y=y;
a[x][y]=i;
}
else if(x!=1&&y!=n)
{
if(a[x-1][y+1]==0)
{
x=x-1;y=y+1;a[x][y]=i;
}
else
{
x=x+1;y=y;a[x][y]=i;
}
}
i++;
}
for(k=1;k<=n;k++)
{
for(j=1;j<=n;j++)
{
if(j==1)printf("%d",a[k][j]); else printf(" %d",a[k][j]);}
if(k!=n) printf("\n");
}
return 0;
}
/**************************************************************
Problem: 2344
User: admin
Language: C
Result: Accepted
Time:46 ms
Memory:1152 kb
****************************************************************/