/*
* Городская олимпиада по информатике и программированию
* Второй тур
* Задача №2 "Отель"
*/
package olymp2;
import java.util.Scanner;
public class Olymp2 {
public static void main(String[] args) {
// получение данных
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// создание массива
int[][] array = new int[n][n];
// переменная с номером ячейки
int count = 1;
// заполнение номерами правой части и центрального ряда
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
array[j][n - 1 - i + j] = count++;
}
}
// заполнение номерами левой части
for (int i = 0; i < n - 1; i++) {
int reset = 0;
for (int j = i; j < n - 1; j++) {
array[j + 1][reset++] = count++;
}
}
// вывод результата
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(array[i][j] + " ");
}
System.out.print("\n");
}
}
}