#include <iostream>
using namespace std;
int a[20004][20004]={0};//在主函数外定义数组,节省内存
int main() {
int n{};//杨辉三角的前n行
cin>>n;
for(int i=0;i<n;i++)//矩阵的行数(其实就是数组里的位置)
{
for(int j=0;j<=i;j++)//矩阵的列数(注意这里是j<=i,否则会跳过第一行)
{
if(j==0)//每行第一个元素都是1
{
a[i][j]=1;
cout<<a[i][j]<<" ";//开头需要空格
if(j==i)//特殊处理第一行
cout<<endl;
}
else if(j==i)//每行的末尾也是1
{
a[i][j]=1;
cout<<a[i][j]<<endl;//末尾不需要空格,但需要换行
}
else if(j!=0)//中间元素的处理
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
cout<<a[i][j]<<" ";//中间需要空格
}
}
}
}
// 64 位输出请用 printf("%lld")