#include <iostream>
#include <iomanip> // 使用 setw 控制输出宽度
using namespace std;
int main() {
int n;
cin >> n; // 输入 n
int arr[n][n]; // 定义 n 行 n 列数组
arr = 1; // 初始化第一个元素
// 根据规律填充数组
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == 0 && j > 0) {
// 第一行,除了第一个元素,其余元素等于左侧元素加4
arr[i][j] = arr[i][j-1] + 4;
} else if (i > 0 && j == 0) {
// 第一列,除了第一个元素,其余元素等于上方元素加1
arr[i][j] = arr[i-1][j] + 1;
} else if (i > 0 && j > 0) {
// 其余元素等于左侧元素加4,上方元素加1,取两者中的较大值
arr[i][j] = max(arr[i-1][j] + 1, arr[i][j-1] + 4);
}
}
}
// 输出结果并控制每项长度为 5 字符
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << setw(5) << arr[i][j]; // 设置输出宽度为 5
}
cout << endl;
}
return 0;
}
/**************************************************************
Problem: 1404
User: zhenghaoxuan
Language: C++
Result: Compile Error
****************************************************************/