func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 1e3 + 5;   const int inf = 0x3f3f3f3f;   struct node {     int val, r, d;   } cells[maxn * maxn];   int n, m, q;   inline int getIndex(int x, int y) { return x * (m + 1) + y; }   void solve() {     scanf( %d%d%d , &n, &m, &q);     for (int i = 0; i <= n; i++) {       for (int j = 0; j <= m; j++) {         cells[getIndex(i, j)].r = getIndex(i, j + 1);         cells[getIndex(i, j)].d = getIndex(i + 1, j);       }     }     for (int i = 1; i <= n; i++) {       for (int j = 1; j <= m; j++) {         scanf( %d , &cells[getIndex(i, j)].val);       }     }     while (q--) {       int a, b, c, d, h, w;       scanf( %d%d%d%d%d%d , &a, &b, &c, &d, &h, &w);       int pos1 = getIndex(a - 1, 0), pos2 = getIndex(c - 1, 0);       for (int i = 1; i <= b - 1; i++) pos1 = cells[pos1].r;       for (int i = 1; i <= d - 1; i++) pos2 = cells[pos2].r;       int tmp1 = pos1, tmp2 = pos2;       for (int i = 1; i <= h; i++) {         tmp1 = cells[tmp1].d;         tmp2 = cells[tmp2].d;         swap(cells[tmp1].r, cells[tmp2].r);       }       for (int i = 1; i <= w; i++) {         tmp1 = cells[tmp1].r;         tmp2 = cells[tmp2].r;         swap(cells[tmp1].d, cells[tmp2].d);       }       tmp1 = pos1, tmp2 = pos2;       for (int i = 1; i <= w; i++) {         tmp1 = cells[tmp1].r;         tmp2 = cells[tmp2].r;         swap(cells[tmp1].d, cells[tmp2].d);       }       for (int i = 1; i <= h; i++) {         tmp1 = cells[tmp1].d;         tmp2 = cells[tmp2].d;         swap(cells[tmp1].r, cells[tmp2].r);       }     }     for (int i = 1; i <= n; i++) {       int tmp = getIndex(i, 0);       for (int j = 1; j <= m; j++) {         tmp = cells[tmp].r;         printf( %d  , cells[tmp].val);       }       puts(  );     }   }   int main() {     solve();     return 0;   }   