#pragma GCC optimize("Ofast", "unroll-loops") #include using namespace std; int main(void){ int N; cin >> N; vector> res(N, vector(N, 0)); map f; for (int i = 0; i < N; ++i){ for (int j = 0; j < N; ++j){ if ((i + j) % 2 == 0){ res[i][j] = (i + j) / 2 + 1; f[(i + j) % N] = res[i][j]; } } } for (int i = 0; i < N; ++i) for (int j = 0; j < N; ++j) if (res[i][j] == 0) res[i][j] = f[(i + j) % N]; for (int i = 0; i < N; ++i) for (int j = 0; j < N; ++j) cout << res[i][j] << (j == N - 1 ? "\n" : " "); return 0; }