# 读取输入的大小 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)))