#include <bits/stdc++.h>
using namespace std;
typedef struct node {
  int num;
  node* down;
  node* right;
} node;
node mat[1002][1002];
int main() {
  int n, m, q, a, b, c, d, h, w;
  node *p1, *p2, *t1, *t2;
  scanf("%d%d%d", &n, &m, &q);
  for (int i = 0; i <= n; i++)
    for (int j = 0; j <= m; j++) {
      mat[i][j].down = &mat[i + 1][j];
      mat[i][j].right = &mat[i][j + 1];
    }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) scanf("%d", &mat[i][j].num);
  for (int i = 0; i < q; i++) {
    scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &h, &w);
    p1 = &mat[0][0];
    p2 = &mat[0][0];
    for (int j = 0; j < a - 1; j++) p1 = p1->down;
    for (int j = 0; j < b - 1; j++) p1 = p1->right;
    for (int j = 0; j < c - 1; j++) p2 = p2->down;
    for (int j = 0; j < d - 1; j++) p2 = p2->right;
    t1 = p1;
    t2 = p2;
    for (int j = 0; j < w; j++) {
      t1 = t1->right;
      t2 = t2->right;
      swap(t1->down, t2->down);
    }
    for (int j = 0; j < h; j++) {
      t1 = t1->down;
      t2 = t2->down;
      swap(t1->right, t2->right);
    }
    t1 = p1;
    t2 = p2;
    for (int j = 0; j < h; j++) {
      t1 = t1->down;
      t2 = t2->down;
      swap(t1->right, t2->right);
    }
    for (int j = 0; j < w; j++) {
      t1 = t1->right;
      t2 = t2->right;
      swap(t1->down, t2->down);
    }
  }
  for (int i = 1; i <= n; i++) {
    t1 = &mat[i][0];
    for (int j = 0; j < m - 1; j++) {
      t1 = t1->right;
      printf("%d ", t1->num);
    }
    printf("%d\n", t1->right->num);
  }
  return 0;
}
