#include <bits/stdc++.h>
using namespace std;
int n, m, q;
struct cell {
  int val;
  cell *d, *r;
  cell(int _val) {
    val = _val;
    r = NULL;
    d = NULL;
  }
} * p[1002][1002];
int a[1002][1002];
cell* get(int x, int y) {
  cell* ans = p[0][0];
  while (x--) ans = ans->d;
  while (y--) ans = ans->r;
  return ans;
}
int main() {
  scanf("%d%d%d", &m, &n, &q);
  for (int i = 1; i <= m; i++)
    for (int j = 1; j <= n; j++) scanf("%d", &a[i][j]);
  for (int i = 0; i <= m + 1; i++)
    for (int j = 0; j <= n + 1; j++) p[i][j] = new cell(a[i][j]);
  for (int i = 0; i <= m; i++)
    for (int j = 0; j <= n; j++) {
      p[i][j]->r = p[i][j + 1];
      p[i][j]->d = p[i + 1][j];
    }
  while (q--) {
    int a, b, c, d, h, w;
    scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &h, &w);
    cell* u = get(a, b - 1);
    cell* v = get(c, d - 1);
    cell* u1 = get(a - 1, b);
    cell* v1 = get(c - 1, d);
    cell* u2 = get(a + h - 1, b);
    cell* v2 = get(c + h - 1, d);
    cell* u3 = get(a, b + w - 1);
    cell* v3 = get(c, d + w - 1);
    for (int i = 1; i <= h; i++) {
      swap(u->r, v->r);
      u = u->d;
      v = v->d;
    }
    for (int i = 1; i <= w; i++) {
      swap(u1->d, v1->d);
      u1 = u1->r;
      v1 = v1->r;
    }
    for (int i = 1; i <= w; i++) {
      swap(u2->d, v2->d);
      u2 = u2->r;
      v2 = v2->r;
    }
    for (int i = 1; i <= h; i++) {
      swap(u3->r, v3->r);
      u3 = u3->d;
      v3 = v3->d;
    }
  }
  for (int i = 1; i <= m; i++) {
    cell* u = get(i, 1);
    for (int j = 1; j <= n; j++) {
      printf("%d ", u->val);
      u = u->r;
    }
    printf("\n");
  }
}
