#include using namespace std; vector> solve(int N) { vector> magic(N, vector(N)); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { magic[i][j] = i * N + j; } } for (int i = 0; i < N; i++) { for (int j = 0; j < N / 2; j++) { if (i % 4 == j % 4 || i % 4 == 3 - (j % 4)) swap(magic[i][j], magic[N - 1 - i][N - 1 - j]); } } return magic; } int main() { int N, X, Y, Z; cin >> N >> X >> Y >> Z; X--; Y--; Z--; auto magic = solve(N); int mask = magic[Y][X] ^ Z; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { cout << (magic[i][j] ^ mask) + 1 << " "; } cout << endl; } }