#include <stdio.h>
int main() {
int n;
scanf("%d", &n); // 读取输入的行数n
for (int i = 0; i < n; i++) { // 遍历每一行(i为行号,从0开始)
long long int num = 1; // 每行第一个元素固定为1(C(i,0)=1)
for (int j = 0; j <= i; j++) { // 遍历当前行的每个元素(j为列号)
printf("%lld", num); // 输出当前元素
// 组合数递推:C(i,j+1) = C(i,j) * (i-j) / (j+1)
num = num * (i - j) / (j + 1);
if (j != i) printf(" "); // 非行末元素后加空格(避免行尾多余空格)
}
printf("\n"); // 换行
}
return 0;
}

京公网安备 11010502036488号