#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1005;
int n, m, q;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m >> q;
vector<vector<int>> A(n + 1, vector<int>(m + 1));
vector<long long> hang(n + 1, 0), cot(m + 1, 0);
vector<int> row(n + 1);
for (int i = 1; i <= n; ++i) {
row[i] = i;
for (int j = 1; j <= m; ++j) {
cin >> A[i][j];
hang[i] += A[i][j];
cot[j] += A[i][j];
}
}
while (q--) {
string type;
cin >> type;
if (type == "1") {
int i, j;
cin >> i >> j;
swap(row[i], row[j]);
swap(hang[i], hang[j]);
} else if (type == "2") {
int i, j, x;
cin >> i >> j >> x;
int real_i = row[i];
hang[i] += x - A[real_i][j];
cot[j] += x - A[real_i][j];
A[real_i][j] = x;
} else if (type == "r") {
int i;
cin >> i;
cout << hang[i] << '\n';
} else if (type == "c") {
int j;
cin >> j;
cout << cot[j] << '\n';
}
}
for (int i = 1; i <= n; ++i) {
int real_i = row[i];
for (int j = 1; j <= m; ++j) {
cout << A[real_i][j] << " ";
}
cout << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYTiA9IDEwMDU7CmludCBuLCBtLCBxOwoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwoKICAgIGNpbiA+PiBuID4+IG0gPj4gcTsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gQShuICsgMSwgdmVjdG9yPGludD4obSArIDEpKTsKICAgIHZlY3Rvcjxsb25nIGxvbmc+IGhhbmcobiArIDEsIDApLCBjb3QobSArIDEsIDApOwogICAgdmVjdG9yPGludD4gcm93KG4gKyAxKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgewogICAgICAgIHJvd1tpXSA9IGk7CiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbTsgKytqKSB7CiAgICAgICAgICAgIGNpbiA+PiBBW2ldW2pdOwogICAgICAgICAgICBoYW5nW2ldICs9IEFbaV1bal07CiAgICAgICAgICAgIGNvdFtqXSArPSBBW2ldW2pdOwogICAgICAgIH0KICAgIH0KCiAgICB3aGlsZSAocS0tKSB7CiAgICAgICAgc3RyaW5nIHR5cGU7CiAgICAgICAgY2luID4+IHR5cGU7CiAgICAgICAgaWYgKHR5cGUgPT0gIjEiKSB7CiAgICAgICAgICAgIGludCBpLCBqOwogICAgICAgICAgICBjaW4gPj4gaSA+PiBqOwogICAgICAgICAgICBzd2FwKHJvd1tpXSwgcm93W2pdKTsKICAgICAgICAgICAgc3dhcChoYW5nW2ldLCBoYW5nW2pdKTsKICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gIjIiKSB7CiAgICAgICAgICAgIGludCBpLCBqLCB4OwogICAgICAgICAgICBjaW4gPj4gaSA+PiBqID4+IHg7CiAgICAgICAgICAgIGludCByZWFsX2kgPSByb3dbaV07CiAgICAgICAgICAgIGhhbmdbaV0gKz0geCAtIEFbcmVhbF9pXVtqXTsKICAgICAgICAgICAgY290W2pdICs9IHggLSBBW3JlYWxfaV1bal07CiAgICAgICAgICAgIEFbcmVhbF9pXVtqXSA9IHg7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09ICJyIikgewogICAgICAgICAgICBpbnQgaTsKICAgICAgICAgICAgY2luID4+IGk7CiAgICAgICAgICAgIGNvdXQgPDwgaGFuZ1tpXSA8PCAnXG4nOwogICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAiYyIpIHsKICAgICAgICAgICAgaW50IGo7CiAgICAgICAgICAgIGNpbiA+PiBqOwogICAgICAgICAgICBjb3V0IDw8IGNvdFtqXSA8PCAnXG4nOwogICAgICAgIH0KICAgIH0KCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHsKICAgICAgICBpbnQgcmVhbF9pID0gcm93W2ldOwogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDw9IG07ICsraikgewogICAgICAgICAgICBjb3V0IDw8IEFbcmVhbF9pXVtqXSA8PCAiICI7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgJ1xuJzsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=