#include <bits/stdc++.h>
using namespace std;
int n, m, Q, x, y, c, d, h, w;
struct Node {
  int data;
  Node *l, *r, *u, *d;
} a[1005][1005];
int main() {
  scanf("%d%d%d", &n, &m, &Q);
  for (int i = 1; i <= n; i++) {
    a[i][0].r = &a[i][1];
    a[i][m + 1].l = &a[i][m];
  }
  for (int i = 1; i <= m; i++) {
    a[0][i].d = &a[1][i];
    a[n + 1][i].u = &a[n][i];
  }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      scanf("%d", &a[i][j].data);
      a[i][j].l = &a[i][j - 1];
      a[i][j].r = &a[i][j + 1];
      a[i][j].u = &a[i - 1][j];
      a[i][j].d = &a[i + 1][j];
    }
  while (Q--) {
    scanf("%d%d%d%d%d%d", &x, &y, &c, &d, &h, &w);
    Node *p1 = a[x][0].r, *p2 = a[c][0].r;
    for (int i = 1; i < y; i++) p1 = p1->r;
    for (int i = 1; i < d; i++) p2 = p2->r;
    for (int i = 1; i <= w; i++) {
      swap(p1->u, p2->u);
      swap(p1->u->d, p2->u->d);
      p1 = p1->r, p2 = p2->r;
    }
    p1 = p1->l, p2 = p2->l;
    for (int i = 1; i <= h; i++) {
      swap(p1->r, p2->r);
      swap(p1->r->l, p2->r->l);
      p1 = p1->d, p2 = p2->d;
    }
    p1 = p1->u, p2 = p2->u;
    for (int i = 1; i <= w; i++) {
      swap(p1->d, p2->d);
      swap(p1->d->u, p2->d->u);
      p1 = p1->l, p2 = p2->l;
    }
    p1 = p1->r, p2 = p2->r;
    for (int i = 1; i <= h; i++) {
      swap(p1->l, p2->l);
      swap(p1->l->r, p2->l->r);
      p1 = p1->u, p2 = p2->u;
    }
  }
  for (int i = 1; i <= n; i++) {
    Node *p = &a[i][0];
    for (int j = 1; j <= m; j++) {
      p = p->r;
      printf("%d ", p->data);
    }
    puts("");
  }
}
