#include <stdio.h>
#include <string.h>
int main() {
    int n;
    scanf("%d", &n);
    // 一个二维数组
    int matrix[n][n];
    memset(matrix, 0, sizeof(matrix));
    for (int i = 0; i < n; i++) {
        for (int j = 0; j <= i; j++) {
            if (j != 0) {
                matrix[i][j] = matrix[i - 1][j] + matrix[i - 1][j - 1];
            } else {
                matrix[i][j] = 1;
            }
            printf("%5.d", matrix[i][j]);
        }
        printf("\n");
    }

    // 两个一维数组
    // int arr[n];
    // int o_arr[n];
    // memset(arr, 0, sizeof(arr));
    // memset(o_arr, 0, sizeof(arr));
    // arr[0] = o_arr[0] = 1;

    // for (int i = 0; i < n; i++) {
    //     for (int j = 0; j < i + 1; j++) {
    //         if (j != 0) {
    //             arr[j] = o_arr[j - 1] + o_arr[j];
    //         } else {
    //             arr[j] = o_arr[j] = 1;
    //         }
    //         printf("%5.d", arr[j]);
    //     }
    //     for (int j = 0; j < i; j++) {
    //         o_arr[j] = arr[j];
    //     }
    //     printf("\n");
    // }
    return 0;
}