#include <bits/stdc++.h>
using namespace std;
int N, M, Q, g[(1001)][(1001)], a, b, c, d, e, f;
const int BUSFIZE = 4096;
void gi(int& x) {
  x = 0;
  static char inbuf[BUSFIZE + 16];
  static char* inp = inbuf;
  static char* linp = inbuf + BUSFIZE;
  if (*inp == 0) {
    memset(inbuf, 0, BUSFIZE);
    cin.read(inbuf, BUSFIZE);
    inp = inbuf;
  }
  while (*inp && (*inp < '0' || *inp > '9')) ++inp;
  while (*inp >= '0' && *inp <= '9') {
    x = x * 10 + *inp - '0';
    ++inp;
    if (inp == linp) {
      memset(inbuf, 0, BUSFIZE);
      cin.read(inbuf, BUSFIZE);
      inp = inbuf;
    }
  }
  ++inp;
}
static char outbuf[BUSFIZE + 16];
static char* outp = outbuf;
static char* loutp = outbuf + BUSFIZE;
void write_int(int x, char c) {
  char* begp = outp;
  while (x) {
    int t = x / 10;
    char c = x - 10 * t + '0';
    *outp++ = c;
    x = t;
  }
  char* endp = outp - 1;
  while (begp < endp) {
    swap(*begp, *endp);
    ++begp;
    --endp;
  }
  if (outp > loutp) {
    cout.write(outbuf, outp - outbuf);
    outp = outbuf;
  }
  *outp++ = c;
}
void ga(int N, int* A) {
  for (int i(0); i < N; i++) gi(A[i]);
}
char *A, *B;
unsigned char R[(1001)][3 * (1001)], G[(1001) * 3];
void pt(int a, unsigned char* s) {
  s[2] = a & 255, s[1] = a >> 8 & 255, *s = a >> 16 & 255;
}
int gt(unsigned char* s) { return *s * 256ll * 256 + 256 * s[1] + s[2]; }
int main(void) {
  ios_base::sync_with_stdio(0);
  ;
  gi(N), gi(M), gi(Q);
  for (int i(0); i < N; i++) ga(M, g[i]);
  for (int i(0); i < N; i++)
    for (int j(0); j < M; j++) pt(i * M + j, R[i] + 3 * j);
  for (int i(0); i < Q; i++) {
    gi(a), gi(b), gi(c), gi(d), gi(e), gi(f), --a, --b, --d, --c;
    for (int i(0); i < e; i++) {
      A = (char*)&R[a + i][b * 3], B = (char*)&R[c + i][d * 3];
      memmove((char*)G, (char*)A, sizeof(char) * f * 3);
      memmove((char*)A, (char*)B, sizeof(char) * f * 3);
      memmove((char*)B, (char*)G, sizeof(char) * f * 3);
    }
  }
  for (int i(0); i < N; i++)
    for (int j(0); j < M; j++)
      write_int(g[gt(R[i] + j * 3) / M][gt(R[i] + j * 3) % M],
                M == j + 1 ? 10 : 32);
  cout.write(outbuf, outp - outbuf);
  ;
  return 0;
}
