import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别

        /**
		分析过程
        1  2  6  7
        3  5  8  13
        4  9  12 14
        10 11 15 16

        0, 1
        1, 0
        2, 0
        1, 1
        0, 2
        0, 3
        1, 2
        2, 1
        3, 0
        3, 1
        2, 2
        1, 3
        2, 3
        3, 2
        3, 3


        1 2 6
        3 5 7
        4 8 9
        0,0
        0,1
        1,0
        2,0
        1,1
        0,2
        1,2
        2,1
        2,2
         */
        int n = in.nextInt();

        int martix[][] = new int[n][n];

        int step = n * n;

        int row = 0, col = 0;

        int isLeftDown = -1;	// 移动方向(左下或右上),-1为两则都不

        for (int i = 1; i <= step; i++) {
            martix[row][col] = i;

            if (isLeftDown == 0) {
                // 左下移动
                col -= 1;
                row += 1;
                // 要向下移动或向右移动了
                if (row == 0 || col == 0 || row + 1 == n || col + 1 == n) isLeftDown = -1;
            } else if (isLeftDown == 1) {
                // 右上移动
                row -= 1;
                col += 1;
                // 要向下移动或向右移动了
                if (row == 0 || col == 0 || row + 1 == n || col + 1 == n) isLeftDown = -1;
            } else if (row == 0) {
                // 往左下移动
                // 向右移动一步
                if (col + 1 != n) {
                    col += 1;
                } else {
                    row += 1;
                }
                isLeftDown = 0;
            } else if (col == 0) {
                // 往右上移动
                isLeftDown = 1;
                if (row + 1 != n) {
                    // 向下移动一步
                    row += 1;
                } else {
                    // 向右移动一步
                    col += 1;
                }
            } else if (row + 1 == n) {
                // 向右移动一步,然后往右上移动
                col += 1;
                isLeftDown = 1;
            } else if (col + 1 == n) {
                // 向下移动一步,然后往左下移动
                row += 1;
                isLeftDown = 0;
            }
        }

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                System.out.print(martix[i][j] + " ");
            }
            System.out.println();
        }

    }
}