#include <bits/stdc++.h>
using namespace std;
int n, m, q, a[1005][1005], Sov;
int Cal(int u, int v) { return u * (m + 1) + v; }
struct node {
  int v, d, r;
} c[2000005];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> m >> q;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      cin >> a[i][j];
      c[Cal(i, j)].v = a[i][j];
    }
  for (int i = 0; i <= n; i++)
    for (int j = 0; j <= m; j++) {
      c[Cal(i, j)].d = Cal(i + 1, j);
      c[Cal(i, j)].r = Cal(i, j + 1);
    }
  Sov = Cal(1, 1);
  while (q--) {
    int x1, y1, x2, y2, h, w, t1 = 0, t2 = 0, p1, p2;
    cin >> x1 >> y1 >> x2 >> y2 >> h >> w;
    for (int i = 1; i < x1; i++) t1 = c[t1].d;
    for (int i = 1; i < y1; i++) t1 = c[t1].r;
    for (int i = 1; i < x2; i++) t2 = c[t2].d;
    for (int i = 1; i < y2; i++) t2 = c[t2].r;
    p1 = t1;
    p2 = t2;
    for (int i = 1; i <= w; i++) {
      p1 = c[p1].r;
      p2 = c[p2].r;
      swap(c[p1].d, c[p2].d);
    }
    for (int i = 1; i <= h; i++) {
      p1 = c[p1].d;
      p2 = c[p2].d;
      swap(c[p1].r, c[p2].r);
    }
    p1 = t1;
    p2 = t2;
    for (int i = 1; i <= h; i++) {
      p1 = c[p1].d;
      p2 = c[p2].d;
      swap(c[p1].r, c[p2].r);
    }
    for (int i = 1; i <= w; i++) {
      p1 = c[p1].r;
      p2 = c[p2].r;
      swap(c[p1].d, c[p2].d);
    }
  }
  for (int i = 1, t = 0; i <= n; i++) {
    t = c[t].d;
    int p = t;
    for (int i = 1; i <= m; i++) {
      p = c[p].r;
      cout << c[p].v << " ";
    }
    cout << '\n';
  }
}
