# 读取输入的大小 n
n = int(input())
# 保存当前行的列表
res = []
# 循环生成 n 行
for i in range(n):
# ======================
# 第一行:单独生成(拆开写!)
# ======================
if i == 0:
res = [] # 清空列表
for x in range(n):
# 公式:(x+1)*(x+2)//2 三角数 1 3 6 10...
num = (x + 1) * (x + 2) // 2
res.append(num) # 一个个加进去
# ======================
# 第二行及以后:规律生成
# ======================
else:
new_line = [] # 新建一行
# 遍历上一行,从第 2 个元素开始(去掉第一个)
for num in res[1:]:
new_num = num - 1 # 每个数字 -1
new_line.append(new_num)
# 更新为新行
res = new_line
# 输出这一行
print(' '.join(map(str, res)))