/*
 * 解题思路: 先找规律, 然后根据规律向二维数组赋值
 */
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextInt()) {
            int num = sc.nextInt();
            int[][] array = new int[num][num];

            // 规律(值递增的方向):
            // 00
            // 10 01
            // 20 11 02
            // 30 21 12 03
            int val = 1;
            for (int i = 0; i < num; i++) {
                for (int m = i, n = 0; m >= 0; m--, n++) {
                    array[m][n] = val;
                    val++;
                }
            }

            for (int i = 0; i < num; i++) {
                for (int j = 0; j < num; j++) {
                    if (array[i][j] == 0) {
                        break;
                    }
                    if (j != 0) {
                        System.out.print(" ");
                    }
                    System.out.print(array[i][j]);
                }
                System.out.println();
            }
        }
    }
}