#include <iostream>
#include <iomanip> // 用于设置输出格式
using namespace std;

int main() {
    int N;
    cin >> N; // 输入行数N

    // 创建一个二维数组来存储杨辉三角
    int triangle[N][N];

    // 初始化杨辉三角
    for (int i = 0; i < N; ++i) {
        for (int j = 0; j <= i; ++j) {
            if (j == 0 || j == i) {
                triangle[i][j] = 1; // 每一行的第一个和最后一个元素都是1
            } else {
                triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j]; // 其他元素是上一行相邻两个元素之和
            }
            cout << triangle[i][j] << " "; // 输出当前元素,并在后面加一个空格
        }
        cout << endl; // 每输出完一行后换行
    }

    return 0;
}
/**************************************************************
	Problem: 1275
	User: wuhanyu
	Language: C++
	Result: Accepted
	Time:10 ms
	Memory:2072 kb
****************************************************************/