#include <bits/stdc++.h>
const int SIZE_N = (1000 + 10);
const int SIZE_M = (SIZE_N);
const int SIZE_K = (500000 + 10);
int n, m, k;
int mat[SIZE_N][SIZE_M];
int mx[SIZE_M], my[SIZE_N];
int main(void) {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= m; ++j) scanf("%d", &mat[i][j]);
  for (int i = 1; i <= n; ++i) my[i] = i;
  for (int i = 1; i <= m; ++i) mx[i] = i;
  for (; k > 0; --k) {
    char typ[10];
    int a, b;
    scanf("%s", typ);
    scanf("%d%d", &a, &b);
    if (typ[0] == 'c') {
      std::swap(mx[a], mx[b]);
    } else if (typ[0] == 'r') {
      std::swap(my[a], my[b]);
    } else if (typ[0] == 'g') {
      printf("%d\n", mat[my[a]][mx[b]]);
    }
  }
  return 0;
}
