#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n; // 输入n
    vector<vector<int>> res(n, vector<int>(n)); // 构造一个n*n的二维数组
    // 开始填充数字
    if (n == 1) {
        cout << 1 << endl;
    }
    // 当n > 2
    int num = 1; // 从1开始填充
    for (int d = 0; d < n; ++d) {
        for (int i = 0; i <= d; ++i) {
            int j = d - i;
            res[j][i] = num++;
        }
    }
    // 输出蛇形矩阵
    for (auto& arr : res) {
        for (auto& value : arr) {
            if (value != 0) {
                cout << value << " ";
            }
        }
        cout << endl;
    }
}