#include <stdio.h>
int main()
{
	//定义二维数组
	int arr[100][100] = { 0 };
	//输入行数
	int n = 0;
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j <= i; j++)
		{
			//每个数的端点数为1
			arr[i][j * i] = 1;
			//判断是否在端点数以内
			if (i >= 2 && j >= 1 && j < i)
			{
				//计算左上方和上方的值
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}
		}
	}
	//打印杨辉三角
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j <= i; j++)
		{
			printf("%5d", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}