#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    // write your code here......
    
    // 创建一个指向指针的指针
    int **arr = new int*[n];

    // 为每一行创建一个数组
    for (int i = 0; i < n; i++) {
        arr[i] = new int[n];
    }

    // 对二维数组进行初始化
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            arr[i][j] = i + j;
        }
    }

    // 输出二维数组的内容
    cout << "";
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }

    cout << endl;

    // 使用完二维动态数组后, 释放内存
    for (int i = 0; i < n; i++) {
        delete[] arr[i];
    }

    delete[] arr;

    return 0;
}