#include <bits/stdc++.h>
using namespace std;
const int N = (int)1e3 + 10;
int n, m, q, v[N][N];
pair<int, int> R[N][N], D[N][N];
void MoveR(int &x, int &y) {
  pair<int, int> T = R[x][y];
  x = T.first;
  y = T.second;
}
void MoveD(int &x, int &y) {
  pair<int, int> T = D[x][y];
  x = T.first;
  y = T.second;
}
void Move(int x, int y, int &p, int &q) {
  p = q = 0;
  while (x--) MoveD(p, q);
  while (y--) MoveR(p, q);
}
int main() {
  scanf("%d%d%d", &n, &m, &q);
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= m; ++j) scanf("%d", &v[i][j]);
  for (int i = 0; i <= n + 1; ++i)
    for (int j = 0; j <= m + 1; ++j) {
      R[i][j] = pair<int, int>(i, j + 1);
      D[i][j] = pair<int, int>(i + 1, j);
    }
  while (q--) {
    int a, b, c, d, w, h, x1, y1, x2, y2;
    scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &w, &h);
    pair<int, int> f[8];
    Move(a, b - 1, f[0].first, f[0].second);
    Move(c, d - 1, f[1].first, f[1].second);
    Move(a, b + h - 1, f[2].first, f[2].second);
    Move(c, d + h - 1, f[3].first, f[3].second);
    Move(a - 1, b, f[4].first, f[4].second);
    Move(c - 1, d, f[5].first, f[5].second);
    Move(a + w - 1, b, f[6].first, f[6].second);
    Move(c + w - 1, d, f[7].first, f[7].second);
    for (int i = 0; i < 4; i += 2) {
      x1 = f[i].first;
      x2 = f[i + 1].first;
      y1 = f[i].second;
      y2 = f[i + 1].second;
      for (int i = 0; i < w; ++i) {
        swap(R[x1][y1], R[x2][y2]);
        MoveD(x1, y1);
        MoveD(x2, y2);
      }
    }
    for (int i = 4; i < 8; i += 2) {
      x1 = f[i].first;
      x2 = f[i + 1].first;
      y1 = f[i].second;
      y2 = f[i + 1].second;
      for (int i = 0; i < h; ++i) {
        swap(D[x1][y1], D[x2][y2]);
        MoveR(x1, y1);
        MoveR(x2, y2);
      }
    }
  }
  for (int i = 1; i <= n; ++i) {
    int x, y;
    Move(i, 1, x, y);
    for (int j = 1; j <= m; ++j) {
      printf("%d ", v[x][y]);
      MoveR(x, y);
    }
    printf("\n");
  }
  return 0;
}
