import java.util.Scanner;
public class matrix {
public static void main(String[] args)
{
Scanner reader=new Scanner(System.in);
int n=reader.nextInt();
matrix ma=new matrix();
ma.array1(n);
ma.array2(n);
}
public void array1(int n)
{
int[][] array=new int[n][n];
boolean up=true;
int count=1;
for(int sum=0;sum<=2*n-2;)
{
if(up)
{
for(int i=0;i<n;i++)
if(sum-i>=0&&sum-i<n)
array[i][sum-i]=count++;
up=false;
sum++;
}
if(!up){
for(int j=0;j<n;j++)
if(sum-j>=0&&sum-j<n)
array[sum-j][j]=count++;
up=true;
sum++;
}
}
for(int i=0;i<array.length;i++)
{
for(int j=0;j<array[i].length;j++)
System.out.printf("%-3d",array[i][j]);
System.out.println();
}
}
public void array2(int n)
{
int[][] array=new int[n][n];
boolean up=false;
int count=1;
for(int sum=0;sum<=2*n-2;)
{
if(up)
{
for(int i=0;i<n;i++)
if(sum-i>=0&&sum-i<n)
array[i][sum-i]=count++;
up=false;
sum++;
}
if(!up){
for(int j=0;j<n;j++)
if(sum-j>=0&&sum-j<n)
array[sum-j][j]=count++;
up=true;
sum++;
}
}
for(int i=0;i<array.length;i++)
{
for(int j=0;j<array[i].length;j++)
System.out.printf("%-3d",array[i][j]);
System.out.println();
}
}
}