/*
打印杨辉三角(行数可以键盘录入)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
任何一行的第一列和最后一列都是1
从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和
*/
import java.io.BufferedInputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class c3 {
static void yangHuiSanJiao(int n){
int[][] d=new int[n][];
for(int i=0;i<n;i++){
d[i]=new int[i+1];
for(int j=0;j<d[i].length;j++){
if(i==0||j==0||i==j){
d[i][j]=1;
}else{
d[i][j]=d[i-1][j]+d[i-1][j-1];
}
System.out.print(d[i][j]+" ");
}
System.out.println();
}
}
public static void main(String[] args){
Scanner in=new Scanner(new BufferedInputStream(System.in));
while (in.hasNext()){
int n=in.nextInt();
yangHuiSanJiao(n);
}
}
}