//蛇形矩阵
#include <stdio.h>
int main() {
    int n, arr[1000][1000] = {0}, x = 1;
    scanf("%d", &n);
    for (int i = 1; i <= 2 * n - 1; i++) {
        int row = i;
        int column = 1;
        while (row >= 1) {
            if (row <= n && column <= n) {
                if (i % 2 != 0) { //奇数行
                    arr[row][column] = x++;
                } else {
                    arr[column][row] = x++;
                }

            }//放置数字的判断
            row--, column++;//不要把这行代码放入上方if语句中会造成死循环!!!
        }
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}