#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-9;
int v[1024 * 1024];
int neighbor[1024 * 1024][2];
int border[4][2][1024][2];
void getBorder(int id1, int id2, int r, int c, int d, int N, int M) {
  int pos = 0;
  if (d)
    --c;
  else
    --r;
  while (r-- > 0) pos = neighbor[pos][0];
  while (c-- > 0) pos = neighbor[pos][1];
  for (int n = (0); n < (N); n++) {
    pos = neighbor[pos][d];
    border[id1][id2][n][0] = pos;
    border[id1][id2][n][1] = neighbor[pos][d ^ 1];
  }
  if (d)
    --id1;
  else
    id1 = 3;
  pos = neighbor[pos][d ^ 1];
  for (int n = (0); n < (M); n++) {
    border[id1][id2][n][0] = pos;
    border[id1][id2][n][1] = neighbor[pos][d];
    pos = neighbor[pos][d ^ 1];
  }
}
int main() {
  ios::sync_with_stdio(false);
  int R, C, Q;
  scanf("%d%d%d", &R, &C, &Q);
  for (int r = (0); r < (R); r++)
    for (int c = (0); c < (C); c++) scanf("%d", &(v[r * 1024 + c]));
  for (int r = (0); r < (R + 2); r++)
    for (int c = (0); c < (C + 2); c++)
      neighbor[r * 1024 + c][0] = (r + 1) * 1024 + c;
  for (int r = (0); r < (R + 2); r++)
    for (int c = (0); c < (C + 2); c++)
      neighbor[r * 1024 + c][1] = r * 1024 + c + 1;
  while (Q-- > 0) {
    int rr[2], cc[2], h, w;
    scanf("%d%d%d%d%d%d", &(rr[0]), &(cc[0]), &(rr[1]), &(cc[1]), &h, &w);
    for (int i = (0); i < (2); i++) {
      getBorder(0, i, rr[i], cc[i] - 1, 0, h, w);
      getBorder(2, i, rr[i] - 1, cc[i], 1, w, h);
    }
    for (int i = (0); i < (2); i++)
      for (int k = (0); k < (h); k++) {
        int p1a = border[i][0][k][0];
        int p1b = border[i][0][k][1];
        int p2a = border[i][1][k][0];
        int p2b = border[i][1][k][1];
        neighbor[p1a][1] = p2b;
        neighbor[p2a][1] = p1b;
      }
    for (int i = (2); i < (4); i++)
      for (int k = (0); k < (w); k++) {
        int p1a = border[i][0][k][0];
        int p1b = border[i][0][k][1];
        int p2a = border[i][1][k][0];
        int p2b = border[i][1][k][1];
        neighbor[p1a][0] = p2b;
        neighbor[p2a][0] = p1b;
      }
  }
  int f = neighbor[0][0];
  f = neighbor[f][1];
  for (int r = (0); r < (R); r++) {
    int c = f;
    for (int i = (0); i < (C); i++) {
      printf("%d%c", v[c - 1025], ((i == C - 1) ? '\n' : ' '));
      c = neighbor[c][1];
    }
    f = neighbor[f][0];
  }
  return 0;
}
