#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
using Matrix = vector<vector<int>>;
ostream& operator<<(ostream& os, const vector<vector<int>>& mat) {
for (int i = 0; i < mat.size(); ++i) {
for (int j = 0; j < mat[i].size(); ++j) {
os << mat[i][j] << " ";
}
os << endl;
}
return os;
}
class SubMatrix {
public:
SubMatrix(Matrix& mat, int row_start, int col_start, int size)
: mat(mat), row_start(row_start), col_start(col_start), sz(size) {}
int get(int row, int col) const {
// cout << row << ", " << col << endl;
// cout << row + row_start << ", " << col + col_start << endl;
return mat[row + row_start][col + col_start];
}
void set(int row, int col, int val) {
mat[row + row_start][col + col_start] = val;
}
int size() const {
return sz;
}
private:
Matrix& mat;
int row_start;
int col_start;
int sz;
};
// rotate the submatrix clockwise for 90deg
void rotate90(SubMatrix& submat) {
int n = submat.size();
for (int i = 0; i < n / 2; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
int temp = submat.get(i, j);
submat.set(i, j, submat.get(n - j - 1, i));
submat.set(n - j - 1, i, submat.get(n - i - 1, n - j - 1));
submat.set(n - i - 1, n - j - 1, submat.get(j, n - i - 1));
submat.set(j, n - i - 1, temp);
}
}
}
// rotate the submatrix counterclockwise for 90deg
void rotate90c(SubMatrix& submat) {
int n = submat.size();
for (int i = 0; i < n / 2; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
int temp = submat.get(i, j);
submat.set(i, j, submat.get(j, n - i - 1));
submat.set(j, n - i - 1, submat.get(n - i - 1, n - j - 1));
submat.set(n - i - 1, n - j - 1, submat.get(n - j - 1, i));
submat.set(n - j - 1, i, temp);
}
}
}
void print(const SubMatrix& submat) {
for (int i = 0; i < submat.size(); ++i) {
for (int j = 0; j < submat.size(); ++j) {
cout << submat.get(i, j) << " ";
}
cout << endl;
}
}
int main() {
// ifstream input("input.txt");
istream &input = cin;
vector<vector<int>> matrix(5, vector<int>(5));
for (int i = 0; i < 5; ++i) {
for (int j = 0; j < 5; ++j) {
input >> matrix[i][j];
}
}
// cout << matrix << endl;
int n = 0, m = 0, x1 = 0, y1 = 0;
// 1 clockwise
// 2 counterclockwise
// 2 4 digits
// 3 9 digits
input >> n >> m >> x1 >> y1;
x1 -= 1;
y1 -= 1;
int size = 0;
if (m == 2) {
size = 2;
} else {
size = 3;
}
void (*pfn)(SubMatrix&) = nullptr;
if (n == 1) {
pfn = &rotate90;
} else {
pfn = &rotate90c;
}
// cout << matrix << endl;
SubMatrix submat(matrix, x1, y1, size);
// print(submat);
// cout << endl;
pfn(submat);
cout << matrix << endl;
}