#include<stdio.h>//此程序要注意 i 和 j 的变化!!!!!!!!
#include<string.h>
int main()
{
int n,i,j,a,b,c,d,e;
int str[110][110];
scanf("%d",&n);
a=1;
memset(str,0,sizeof(str));
b=n-1;//行尾标号
c=n-1;//列尾标号
d=0;//行首标号
e=0;//列首标号
// i=n-1;
while(a<=n*n)
{
i=c;
// i=n-1;//i 表示列,j 表示行
for(j=d;j<=b;j++)
{
str[j][i]=a++;
if(a==n*n+1)
break;
}
if(a==n*n+1)
break;
c=c-1;
for(i=c;i>=e;i--)//结束时 i=e-1,所以下面加 1 !!!!!!!!
{
str[j-1][i]=a++;
if(a==n*n+1)
break;
}
if(a==n*n+1)
break;
b=b-1;
for(j=b;j>=d;j--)//结束时 j=d-1,所以下面要加 1!!!!!!!!
{
str[j][i+1]=a++;
if(a==n*n+1)
break;
}
if(a==n*n+1)
break;
e=e+1;
for(i=e;i<=c;i++)
{
str[j+1][i]=a++;
if(a==n*n+1)
break;
}
if(a==n*n+1)
break;
d=d+1;
/*if(a==n*n)
break;*/
}
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
printf("%d ",str[i][j]);
printf("%d\n",str[i][j]);
}
return 0;
}