/*
 * Городская олимпиада по информатике и программированию
 * Второй тур
 * Задача №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");
        }
    }
}