package NiukeBrush;

import java.util.Scanner;

//蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
public class Huawei27 {

	public static void main(String[] args) {
	 Scanner sc=new Scanner(System.in);
	 while(sc.hasNext())
	 {
		 int n=sc.nextInt();
		 int[][] array=new int[n][n];
		 int k=0;
		 int count=1;
		 //定义一个a,遍历循环
		 for(int a=0;a<n;a++)
		 {
			//定义一个变量r,然后每层用k-r来指代 
			 for(int r=0;r<=a;r++)
			 {
				 array[k-r][r]=count;//使用k-r来控制添加的是第几行元素
				 count++;
			 }
			 k++;
		 }
		 
		//原先准备这样打印,可是后来发现这样会出现一种状况,就是把0打赢出来,这明显不是我希望的
//		 for(int c=0;c<n;c++)
//		 {
//		 for(int d=0;d<n;d++)
//		 {
//			System.out.print(array[d][c]+" ");		
//		 }
//	     }
		 for(int c=0;c<n;c++)
		 {
			int q=n-c;//利用q来控制是否打印" "或者""
			for(int j=0;j<q;j++)
			{
				if(j !=q-1)
				{
					System.out.println(array[c][j]+" ");
				}
				if(j ==q-1)
				{
					System.out.println(array[c][j]);
				}
			}
			 System.out.println();
		 }
		
		}
    }
}