#include <bits/stdc++.h>
using namespace std;
int u[1500100], d[1500100], l[1500100], r[1500100], v[1500100], t[1010],
    g[1010];
int cnt;
void link1(int a, int b) {
  r[a] = b;
  l[b] = a;
}
void link2(int a, int b) {
  d[a] = b;
  u[b] = a;
}
int get(int x, int y) {
  int p = 0;
  while (x--) p = d[p];
  while (y--) p = r[p];
  return p;
}
int main() {
  int n, m, q;
  scanf("%d %d %d", &n, &m, &q);
  for (int i = 1; i <= m; i++) {
    t[i] = ++cnt;
    link1(t[i - 1], t[i]);
  }
  for (int i = 1; i <= n; i++) {
    g[i] = ++cnt;
    link2(g[i - 1], g[i]);
  }
  int p;
  for (int i = 0; i < n; i++) {
    p = g[i];
    for (int j = 0; j < m; j++) {
      int x;
      scanf("%d", &x);
      v[++cnt] = x;
      link1(d[p], cnt);
      link2(p = r[p], cnt);
    }
  }
  p = t[m];
  for (int i = 0; i <= n; i++, p = d[p]) {
    link1(p, ++cnt);
    if (i) link2(cnt - 1, cnt);
  }
  p = g[n];
  for (int i = 0; i <= m; i++, p = r[p]) {
    link2(p, ++cnt);
    if (i) link1(cnt - 1, cnt);
  }
  while (q--) {
    int a, b, c, e, h, w, i;
    scanf("%d %d %d %d %d %d", &a, &b, &c, &e, &h, &w);
    a = get(a, b);
    b = get(c, e);
    for (i = 0, c = a, e = b; i < w; i++, c = r[c], e = r[e]) {
      int tmp0 = u[c], tmp1 = u[e];
      link2(tmp0, e);
      link2(tmp1, c);
    }
    for (i = 0, c = l[c], e = l[e]; i < h; i++, c = d[c], e = d[e]) {
      int tmp0 = r[c], tmp1 = r[e];
      link1(c, tmp1);
      link1(e, tmp0);
    }
    for (i = 0, c = a, e = b; i < h; i++, c = d[c], e = d[e]) {
      int tmp0 = l[c], tmp1 = l[e];
      link1(tmp0, e);
      link1(tmp1, c);
    }
    for (i = 0, c = u[c], e = u[e]; i < w; i++, c = r[c], e = r[e]) {
      int tmp0 = d[c], tmp1 = d[e];
      link2(c, tmp1);
      link2(e, tmp0);
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 0, p = r[g[i]]; j < m; j++, p = r[p]) {
      printf("%d ", v[p]);
    }
    puts("");
  }
  return 0;
}
