#include <iostream>
using namespace std;
const int MAX_SIZE = 50;
int main() {
int line, col, mt[MAX_SIZE][MAX_SIZE]; // Indexare de la 0
cin >> line >> col;
// Citirea matricei
for (int m = 0; m < line; ++m) {
for (int n = 0; n < col; ++n) {
cin >> mt[m][n];
}
}
int i, j, l;
cin >> i >> j >> l;
// Verificăm dacă submatricea este pătratică
if (l - i != l - j) {
cout << "Submatricea trebuie să fie pătratică!" << endl;
return 1;
}
// Rotește submatricea cu 90 de grade spre stânga
for (int m = 0; m < l - i + 1; ++m) {
for (int n = 0; n < l - j + 1; ++n) {
// Copiem elementele în noua poziție
// Elementul (m, n) va merge la (l - j - n + i, m + j - i)
mt[l - j - n][m + j] = mt[i + m][j + n];
}
}
// Afișăm matricea rezultată
for (int m = 0; m < line; ++m) {
for (int n = 0; n < col; ++n) {
cout << mt[m][n] << " ";
}
cout << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1BWF9TSVpFID0gNTA7CgppbnQgbWFpbigpIHsKICAgIGludCBsaW5lLCBjb2wsIG10W01BWF9TSVpFXVtNQVhfU0laRV07ICAvLyBJbmRleGFyZSBkZSBsYSAwCiAgICBjaW4gPj4gbGluZSA+PiBjb2w7CgogICAgLy8gQ2l0aXJlYSBtYXRyaWNlaQogICAgZm9yIChpbnQgbSA9IDA7IG0gPCBsaW5lOyArK20pIHsKICAgICAgICBmb3IgKGludCBuID0gMDsgbiA8IGNvbDsgKytuKSB7CiAgICAgICAgICAgIGNpbiA+PiBtdFttXVtuXTsKICAgICAgICB9CiAgICB9CgogICAgaW50IGksIGosIGw7CiAgICBjaW4gPj4gaSA+PiBqID4+IGw7CgogICAgLy8gVmVyaWZpY8SDbSBkYWPEgyBzdWJtYXRyaWNlYSBlc3RlIHDEg3RyYXRpY8SDCiAgICBpZiAobCAtIGkgIT0gbCAtIGopIHsKICAgICAgICBjb3V0IDw8ICJTdWJtYXRyaWNlYSB0cmVidWllIHPEgyBmaWUgcMSDdHJhdGljxIMhIiA8PCBlbmRsOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIC8vIFJvdGXImXRlIHN1Ym1hdHJpY2VhIGN1IDkwIGRlIGdyYWRlIHNwcmUgc3TDom5nYQogICAgZm9yIChpbnQgbSA9IDA7IG0gPCBsIC0gaSArIDE7ICsrbSkgewogICAgICAgIGZvciAoaW50IG4gPSAwOyBuIDwgbCAtIGogKyAxOyArK24pIHsKICAgICAgICAgICAgLy8gQ29waWVtIGVsZW1lbnRlbGUgw65uIG5vdWEgcG96acibaWUKICAgICAgICAgICAgLy8gRWxlbWVudHVsIChtLCBuKSB2YSBtZXJnZSBsYSAobCAtIGogLSBuICsgaSwgbSArIGogLSBpKQogICAgICAgICAgICBtdFtsIC0gaiAtIG5dW20gKyBqXSA9IG10W2kgKyBtXVtqICsgbl07CiAgICAgICAgfQogICAgfQoKICAgIC8vIEFmaciZxINtIG1hdHJpY2VhIHJlenVsdGF0xIMKICAgIGZvciAoaW50IG0gPSAwOyBtIDwgbGluZTsgKyttKSB7CiAgICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCBjb2w7ICsrbikgewogICAgICAgICAgICBjb3V0IDw8IG10W21dW25dIDw8ICIgIjsKICAgICAgICB9CiAgICAgICAgY291dCA8PCAiXG4iOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==