#include <bits/stdc++.h>
const int N = 1005;
int n, m, q, v[N * N], xs, ys, xt, yt, h, w;
struct note {
  int r, d;
} a[N * N];
int c(int x, int y) { return x * (m + 1) + y; }
void modify() {
  int t0 = c(xs - 1, 0), t1 = c(xt - 1, 0);
  for (int i = 1; i < ys; i++) t0 = a[t0].r;
  for (int i = 1; i < yt; i++) t1 = a[t1].r;
  int p0 = t0, p1 = t1;
  for (int i = 1; i <= h; i++) {
    p0 = a[p0].d, p1 = a[p1].d;
    std::swap(a[p0].r, a[p1].r);
  }
  for (int i = 1; i <= w; i++) {
    p0 = a[p0].r, p1 = a[p1].r;
    std::swap(a[p0].d, a[p1].d);
  }
  p0 = t0, p1 = t1;
  for (int i = 1; i <= w; i++) {
    p0 = a[p0].r, p1 = a[p1].r;
    std::swap(a[p0].d, a[p1].d);
  }
  for (int i = 1; i <= h; i++) {
    p0 = a[p0].d, p1 = a[p1].d;
    std::swap(a[p0].r, a[p1].r);
  }
}
int main() {
  scanf("%d%d%d", &n, &m, &q);
  for (int i = 0; i <= n; i++) {
    a[c(i, 0)].r = c(i, 1);
    if (i < n) a[c(i, 0)].d = c(i + 1, 0);
  }
  for (int i = 1; i <= m; i++) {
    a[c(0, i)].d = c(1, i);
    if (i < m) a[c(0, i)].r = c(0, i + 1);
  }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      int t = c(i, j);
      scanf("%d", &v[t]);
      if (j < m) a[t].r = c(i, j + 1);
      if (i < n) a[t].d = c(i + 1, j);
    }
  for (int i = 1; i <= q; i++) {
    scanf("%d%d%d%d%d%d", &xs, &ys, &xt, &yt, &h, &w);
    modify();
  }
  for (int i = 1; i <= n; i++, puts(""))
    for (int j = a[c(i, 0)].r; j; j = a[j].r) printf("%d ", v[j]);
}
