#include <iostream>
using namespace std;
/*
Pasii de implementare:
Declaram și citim următoarele variabile: “n”, “x”, “y”.
Declarăm și initializam cu zero: matricea de marime maxima și
variabila “highestVal” în care se stochează valoarea maximă găsită.
În timpul citirii elementelor matricei:
Dacă valoarea elementului curent este mai mare decat
valoarea variabilei “highestVal”,
aceasta preia valoarea elementului curent.
Parcugand elementele matricei:
Dacă elementul curent este egal cu variabila “highestVal” și
“highestVal” este diferit de elementul de coordonate “x” “y”, atunci, elementul curent preia valoarea elementului de coordonate “x” “y”.
Afisam elementul curent.
*/
const int MAX_VALUE = 10;
int main() {
int n, x, y;
cin >> n >> x >> y;
int mt[MAX_VALUE + 1][MAX_VALUE + 1], highestVal = 0;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
cin >> mt[i][j];
if (mt[i][j] > highestVal) {
highestVal = mt[i][j];
}
}
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
if (mt[i][j] == highestVal && highestVal != mt[x][y]) {
mt[i][j] = mt[x][y];
}
cout << mt[i][j] << " ";
}
cout << "\n";
}
return 0;
}
/*
1 2 3 4 3
3 2 3 4 3
1 3 3 4 3
1 2 3 4 3
3 2 3 4 1
*/
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwovKgpQYXNpaSBkZSBpbXBsZW1lbnRhcmU6CkRlY2xhcmFtIMiZaSBjaXRpbSB1cm3Eg3RvYXJlbGUgdmFyaWFiaWxlOiDigJxu4oCdLCDigJx44oCdLCDigJx54oCdLgpEZWNsYXLEg20gyJlpIGluaXRpYWxpemFtIGN1IHplcm86IG1hdHJpY2VhIGRlIG1hcmltZSBtYXhpbWEgyJlpIAp2YXJpYWJpbGEg4oCcaGlnaGVzdFZhbOKAnSDDrm4gY2FyZSBzZSBzdG9jaGVhesSDIHZhbG9hcmVhIG1heGltxIMgZ8SDc2l0xIMuCgrDjm4gdGltcHVsIGNpdGlyaWkgZWxlbWVudGVsb3IgbWF0cmljZWk6CkRhY8SDIHZhbG9hcmVhIGVsZW1lbnR1bHVpIGN1cmVudCBlc3RlIG1haSBtYXJlIGRlY2F0IAp2YWxvYXJlYSB2YXJpYWJpbGVpIOKAnGhpZ2hlc3RWYWzigJ0sIAoJYWNlYXN0YSBwcmVpYSB2YWxvYXJlYSBlbGVtZW50dWx1aSBjdXJlbnQuCgkKUGFyY3VnYW5kIGVsZW1lbnRlbGUgbWF0cmljZWk6CkRhY8SDIGVsZW1lbnR1bCBjdXJlbnQgZXN0ZSBlZ2FsIGN1IHZhcmlhYmlsYSDigJxoaWdoZXN0VmFs4oCdIMiZaQrigJxoaWdoZXN0VmFs4oCdIGVzdGUgZGlmZXJpdCBkZSBlbGVtZW50dWwgZGUgY29vcmRvbmF0ZSDigJx44oCdIOKAnHnigJ0sIGF0dW5jaSwgZWxlbWVudHVsIGN1cmVudCBwcmVpYSB2YWxvYXJlYSBlbGVtZW50dWx1aSBkZSBjb29yZG9uYXRlIOKAnHjigJ0g4oCceeKAnS4KQWZpc2FtIGVsZW1lbnR1bCBjdXJlbnQuCiovCgpjb25zdCBpbnQgTUFYX1ZBTFVFID0gMTA7CgppbnQgbWFpbigpIHsKCWludCBuLCB4LCB5OwoJY2luID4+IG4gPj4geCA+PiB5OwoJaW50IG10W01BWF9WQUxVRSArIDFdW01BWF9WQUxVRSArIDFdLCBoaWdoZXN0VmFsID0gMDsKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgewoJCWZvciAoaW50IGogPSAxOyBqIDw9IG47ICsraikgewoJCQljaW4gPj4gbXRbaV1bal07CgkJCWlmIChtdFtpXVtqXSA+IGhpZ2hlc3RWYWwpIHsKCQkJCWhpZ2hlc3RWYWwgPSBtdFtpXVtqXTsKCQkJfQoJCX0KCX0KCWZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgewoJCWZvciAoaW50IGogPSAxOyBqIDw9IG47ICsraikgewoJCQlpZiAobXRbaV1bal0gPT0gaGlnaGVzdFZhbCAmJiBoaWdoZXN0VmFsICE9IG10W3hdW3ldKSB7CgkJCQltdFtpXVtqXSA9IG10W3hdW3ldOwoJCQl9CgkJCWNvdXQgPDwgbXRbaV1bal0gPDwgIiAiOwoJCX0KCQljb3V0IDw8ICJcbiI7Cgl9CglyZXR1cm4gMDsKfQovKgoxIDIgMyA0IDMKMyAyIDMgNCAzCjEgMyAzIDQgMwoxIDIgMyA0IDMKMyAyIDMgNCAxCiov