/*
* 解题思路: 先找规律, 然后根据规律向二维数组赋值
*/
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();
}
}
}
}