#include <bits/stdc++.h>
using namespace std;
int val[1010 * 1010];
int r[1010 * 1010], d[1010 * 1010], m;
int Hash(int i, int j) { return i * (m + 1) + j; }
int pos(int i, int j) {
  int cur = 0;
  while (j--) cur = r[cur];
  while (i--) cur = d[cur];
  return cur;
}
int main() {
  int n, q, i, j;
  scanf("%d", &n);
  scanf("%d", &m);
  scanf("%d", &q);
  for (i = 1; i <= n; ++i)
    for (j = 1; j <= m; ++j) scanf("%d", &val[Hash(i, j)]);
  for (i = 0; i <= n; ++i)
    for (j = 0; j <= m; ++j) {
      r[Hash(i, j)] = Hash(i, j + 1);
      d[Hash(i, j)] = Hash(i + 1, j);
    }
  while (q--) {
    int A, B, C, D, h, w;
    scanf("%d", &A);
    scanf("%d", &B);
    scanf("%d", &C);
    scanf("%d", &D);
    scanf("%d", &h);
    scanf("%d", &w);
    int pos1 = pos(A - 1, B - 1);
    int pos2 = pos(C - 1, D - 1);
    int p1 = pos1;
    int p2 = pos2;
    for (i = 0; i < w; ++i) {
      p1 = r[p1];
      p2 = r[p2];
      swap(d[p1], d[p2]);
    }
    for (i = 0; i < h; ++i) {
      p1 = d[p1];
      p2 = d[p2];
      swap(r[p1], r[p2]);
    }
    p1 = pos1;
    p2 = pos2;
    for (i = 0; i < h; ++i) {
      p1 = d[p1];
      p2 = d[p2];
      swap(r[p1], r[p2]);
    }
    for (i = 0; i < w; ++i) {
      p1 = r[p1];
      p2 = r[p2];
      swap(d[p1], d[p2]);
    }
  }
  int st = 0;
  for (i = 1; i <= n; ++i) {
    st = d[st];
    int cur = st;
    for (j = 1; j <= m; ++j) {
      cur = r[cur];
      printf("%d ", val[cur]);
    }
    printf("\n");
  }
}
