#include <bits/stdc++.h>
using namespace std;
int n, m, q;
int d[1500000];
int r[1500000];
int val[1500000];
int find(int v, int x, int y) {
  for (int i = 0; i < x; i++) v = d[v];
  for (int i = 0; i < y; i++) v = r[v];
  return v;
}
int main() {
  scanf("%d%d%d", &n, &m, &q);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      int x;
      scanf("%d", &x);
      val[(i + 1) * 1100 + j + 1] = x;
    }
  }
  for (int i = 0; i < n + 10; i++) {
    for (int j = 0; j < m + 10; j++) {
      r[i * 1100 + j] = i * 1100 + j + 1;
      d[i * 1100 + j] = (i + 1) * 1100 + j;
    }
  }
  for (int t = 0; t < q; t++) {
    int x1, x2, y1, y2, s1, s2;
    scanf("%d%d%d%d%d%d", &x1, &y1, &x2, &y2, &s2, &s1);
    int v1 = find(0, x1, y1 - 1);
    int v2 = find(0, x2, y2 - 1);
    int w1 = find(v1, 0, s1);
    int w2 = find(v2, 0, s1);
    int V1 = find(0, x1 - 1, y1);
    int V2 = find(0, x2 - 1, y2);
    int W1 = find(V1, s2, 0);
    int W2 = find(V2, s2, 0);
    for (int i = 0; i < s2; i++) {
      swap(r[v1], r[v2]);
      swap(r[w1], r[w2]);
      v1 = d[v1];
      v2 = d[v2];
      w1 = d[w1];
      w2 = d[w2];
    }
    for (int i = 0; i < s1; i++) {
      swap(d[V1], d[V2]);
      swap(d[W1], d[W2]);
      V1 = r[V1];
      V2 = r[V2];
      W1 = r[W1];
      W2 = r[W2];
    }
  }
  int v = r[0];
  v = d[v];
  for (int i = 0; i < n; i++) {
    int w = d[v];
    for (int j = 0; j < m; j++) {
      printf("%d", val[v]);
      v = r[v];
      if (j != m - 1)
        printf("%c", ' ');
      else
        printf("\n");
    }
    v = w;
  }
}
