#include <bits/stdc++.h>
using namespace std;
const int N = 1200;
int n, m, k;
struct List {
  int val, r, d;
} a[N * N];
int read(void) {
  int s = 0, w = 0;
  char c = getchar();
  while (c < '0' || c > '9') w |= c == '-', c = getchar();
  while (c >= '0' && c <= '9') s = s * 10 + c - 48, c = getchar();
  return w ? -s : s;
}
inline int C(int x, int y) { return x * (m + 1) + y; }
void change(void) {
  int x1 = read(), y1 = read(), x2 = read(), y2 = read();
  int h = read(), w = read(), t1 = 0, t2 = 0;
  for (int i = 1; i < x1; ++i) t1 = a[t1].d;
  for (int i = 1; i < y1; ++i) t1 = a[t1].r;
  for (int i = 1; i < x2; ++i) t2 = a[t2].d;
  for (int i = 1; i < y2; ++i) t2 = a[t2].r;
  int p1 = t1, p2 = t2;
  for (int i = 1; i <= w; ++i) {
    p1 = a[p1].r, p2 = a[p2].r;
    swap(a[p1].d, a[p2].d);
  }
  for (int i = 1; i <= h; ++i) {
    p1 = a[p1].d, p2 = a[p2].d;
    swap(a[p1].r, a[p2].r);
  }
  p1 = t1, p2 = t2;
  for (int i = 1; i <= h; ++i) {
    p1 = a[p1].d, p2 = a[p2].d;
    swap(a[p1].r, a[p2].r);
  }
  for (int i = 1; i <= w; ++i) {
    p1 = a[p1].r, p2 = a[p2].r;
    swap(a[p1].d, a[p2].d);
  }
  return;
}
void output(void) {
  int t = 0;
  for (int i = 1; i <= n; ++i) {
    t = a[t].d;
    int p = t;
    for (int i = 1; i <= m; ++i) {
      p = a[p].r;
      printf("%d ", a[p].val);
    }
    puts("");
  }
  return;
}
int main(void) {
  n = read(), m = read(), k = read();
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= m; ++j) a[C(i, j)].val = read();
  for (int i = 0; i <= n; ++i)
    for (int j = 0; j <= m; ++j) {
      a[C(i, j)].r = C(i, j + 1);
      a[C(i, j)].d = C(i + 1, j);
    }
  while (k--) change();
  output();
  return 0;
}
