#include<iostream>
using namespace std;
//pl是用来求排列数的 jc是用来求阶乘的
long pl(int,int);
long jc(int);
int main()
{
long n;
cin>>n;
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++) cout<<pl(i,j)<<" ";//打印第(i+1)行第(j+1)个数
cout<<endl;//一行打印完毕
}
return 0;
}
//求排列数
long pl(int m,int n)
{
return(jc(m)/jc(n)/jc(m-n));
}
//求阶乘
long jc(int p)
{
long q=1;
if(p!=0) for(register int i=1;i<=p;i++) q*=i;
return q;
}
//经测试,输入的n<=13时都没有问题
//如果再大一点,就要把程序里面部分long替换成float或者double