#include <bits/stdc++.h>
using namespace std;
const int N = 1123;
int adslsk(int i, int j) { return i * N + j; }
int n, m, q;
int asjldfk[N * N], dkajsdfl[N * N], val[N * N];
int go(int y, int x) {
  int cur = 0;
  for (int i = 0; i < x; i++) {
    cur = dkajsdfl[cur];
  }
  for (int i = 0; i < y; i++) {
    cur = asjldfk[cur];
  }
  return cur;
}
int main() {
  scanf("%d%d%d", &n, &m, &q);
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      scanf("%d", &val[adslsk(i, j)]);
    }
  }
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j <= m; j++) {
      asjldfk[adslsk(i, j)] = adslsk(i + 1, j);
      dkajsdfl[adslsk(i, j)] = adslsk(i, j + 1);
    }
  }
  for (int i = 0; i < q; i++) {
    int a, b, c, d, h, w;
    scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &h, &w);
    int f1 = go(a, b - 1);
    int f2 = go(c, d - 1);
    int f3 = go(a - 1, b);
    int f4 = go(c - 1, d);
    int f5 = go(a, b + w - 1);
    int f6 = go(c, d + w - 1);
    int f7 = go(a + h - 1, b);
    int f8 = go(c + h - 1, d);
    int x = f1, y = f2;
    for (int j = 0; j < h; j++) {
      swap(dkajsdfl[x], dkajsdfl[y]);
      x = asjldfk[x];
      y = asjldfk[y];
    }
    x = f3, y = f4;
    for (int j = 0; j < w; j++) {
      swap(asjldfk[x], asjldfk[y]);
      x = dkajsdfl[x];
      y = dkajsdfl[y];
    }
    x = f5, y = f6;
    for (int j = 0; j < h; j++) {
      swap(dkajsdfl[x], dkajsdfl[y]);
      x = asjldfk[x];
      y = asjldfk[y];
    }
    x = f7, y = f8;
    for (int j = 0; j < w; j++) {
      swap(asjldfk[x], asjldfk[y]);
      x = dkajsdfl[x];
      y = dkajsdfl[y];
    }
  }
  for (int i = 1; i <= n; i++) {
    int cur = adslsk(i, 0);
    for (int j = 1; j <= m; j++) {
      cur = dkajsdfl[cur];
      printf("%d ", val[cur]);
    }
    puts("");
  }
}
