#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1005;
int N, M, Q;
int n1, m1, n2, m2, n, m;
struct ListNode {
  int val;
  ListNode *right;
  ListNode *down;
};
ListNode nodes[MAXN][MAXN];
void inputNodes() {
  for (int j = 1; j <= M; ++j) {
    nodes[0][j - 1].right = &nodes[0][j];
  }
  for (int i = 1; i <= N; ++i) {
    nodes[i - 1][0].down = &nodes[i][0];
    for (int j = 1; j <= M; ++j) {
      scanf("%d", &nodes[i][j].val);
      nodes[i - 1][j].down = &nodes[i][j];
      nodes[i][j - 1].right = &nodes[i][j];
      nodes[i][j].down = NULL;
      nodes[i][j].right = NULL;
    }
  }
}
void printNodes() {
  ListNode *p = &nodes[0][0];
  p = p->down;
  p = p->right;
  ListNode *q = p;
  while (p != NULL) {
    while (q != NULL) {
      printf("%d ", q->val);
      q = q->right;
    }
    printf("\n");
    p = p->down;
    q = p;
  }
}
inline ListNode *findPos(int n, int m) {
  ListNode *res = &nodes[0][0];
  while (n--) res = res->down;
  while (m--) res = res->right;
  return res;
}
int main() {
  while (scanf("%d%d%d", &N, &M, &Q) != EOF) {
    inputNodes();
    while (Q--) {
      scanf("%d%d%d%d%d%d", &n1, &m1, &n2, &m2, &n, &m);
      ListNode *left1 = findPos(n1, m1 - 1);
      ListNode *left2 = findPos(n2, m2 - 1);
      ListNode *up1 = findPos(n1 - 1, m1);
      ListNode *up2 = findPos(n2 - 1, m2);
      ListNode *right1 = findPos(n1, m1 + m - 1);
      ListNode *right2 = findPos(n2, m2 + m - 1);
      ListNode *down1 = findPos(n1 + n - 1, m1);
      ListNode *down2 = findPos(n2 + n - 1, m2);
      for (int i = 0; i < n; ++i) {
        swap(left1->right, left2->right);
        left1 = left1->down;
        left2 = left2->down;
      }
      for (int i = 0; i < m; ++i) {
        swap(up1->down, up2->down);
        up1 = up1->right;
        up2 = up2->right;
      }
      for (int i = 0; i < n; ++i) {
        swap(right1->right, right2->right);
        right1 = right1->down;
        right2 = right2->down;
      }
      for (int i = 0; i < m; ++i) {
        swap(down1->down, down2->down);
        down1 = down1->right;
        down2 = down2->right;
      }
    }
    printNodes();
  }
  return 0;
}
