def yanghui_triangle(n):
    """生成n行杨辉三角列表"""
    yanghui_list = []
    for i in range(n):
        if i == 0:
            yanghui_list.append([1])
        elif i == 1:
            yanghui_list.append([1, 1])
        else:
            # 去掉首尾的1,每列数据等于上行上列数据加上上行同列收据
            ls = [1]
            for j in range(1, i):
                ls.append(yanghui_list[i - 1][j - 1] + yanghui_list[i - 1][j])
            ls.append(1)
            yanghui_list.append(ls)
    return yanghui_list


n = int(input())
for i in yanghui_triangle(n):
    for j in i:
        print(j, end=" ")
    print()