#include<stdio.h>
#include<string.h>
#define N 100
int a[N][N];
int main()
{
int i,j,k,t,m,n;
memset(a,0,sizeof(a));
while(~scanf("%d",&n))
{
t=1;
k=1;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
if(t==1)
a[j][i-j+1]=k++;
else
a[i-j+1][j]=k++;
}
t=-t;
}
for(i=2;i<=n;i++)
{
for(j=i;j<=n;j++)
{
if(t==1)
{
a[j][i-j+n]=k++;
}
else
{
a[i-j+n][j]=k++;
}
}
t=-t;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf((j%n)?"%3d":"%3d\n",a[i][j]);
}
}
}
return 0;
}
#include<string.h>
#define N 100
int a[N][N];
int main()
{
int i,j,k,t,m,n;
memset(a,0,sizeof(a));
while(~scanf("%d",&n))
{
t=1;
k=1;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
if(t==1)
a[j][i-j+1]=k++;
else
a[i-j+1][j]=k++;
}
t=-t;
}
for(i=2;i<=n;i++)
{
for(j=i;j<=n;j++)
{
if(t==1)
{
a[j][i-j+n]=k++;
}
else
{
a[i-j+n][j]=k++;
}
}
t=-t;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
printf((j%n)?"%3d":"%3d\n",a[i][j]);
}
}
}
return 0;
}