#include<cstdio>
bool vis[100][100];
int g[100][100];
int n;
int x=0,y=0;
int flag=1; //1right,2down,3left,4up
int main()
{
scanf("%d",&n);
for(int i=1;i<=n*n;i++)
{
g[y][x]=i;
vis[y][x]=true;
if(flag==1)
{
x++;
if(x==n||vis[y][x])
{
flag=2;
x--;
}
}
if(flag==2)
{
y++;
if(y==n||vis[y][x])
{
flag=3;
y--;
}
}
if(flag==3)
{
x--;
if(x<0||vis[y][x])
{
flag=4;
x++;
}
}
if(flag==4)
{
y--;
if(vis[y][x])
{
flag=1;
y++;
x++;
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++) printf("%3d ",g[i][j]);
printf("\n");
}
return 0;
}
#4AC,其余全WA