#include<bits/stdc++.h>
using namespace std;
inline int read() {
int x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-')
f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
x = x * 10 + ch - '0', ch = getchar();
return x * f;
}
void write(int x) {
if (x < 0)
putchar('-'), x = -x;
if (x > 9)
write(x / 10);
putchar(x % 10 + '0');
return;
}
int n, m, k, a[1005][1005], across[1005], vertical[1005];
int main() {
n = read();
m = read();
k = read();
for (int i = 1; i <= n; i++) {
vertical[i] = i;
for (int j = 1; j <= m; j++) {
across[j] = j;
a[i][j] = read();
}
}
for (int i = 1; i <= k; i++) {
char c;
int x, y;
cin >> c;
x = read();
y = read();
if (c == 'c') {
int t = across[x];
across[x] = across[y];
across[y] = t;
}
if (c == 'r') {
int t = vertical[x];
vertical[x] = vertical[y];
vertical[y] = t;
}
if (c == 'g') {
write(a[vertical[x]][across[y]]);
cout << endl;
}
}
}