#define INF 0x3F3F3F3F #define MAX_SIZE 2005 #define Eps #define Mod #define Get(x, a) (x ? x -> a : 0) #define Travel(x) for(typeof(x.begin()) it = x.begin(); it != x.end(); ++it)
inlineintGet_Int() { int Num = 0, Flag = 1; char ch; do { ch = getchar(); if(ch == '-') Flag = -Flag; } while(ch < '0' || ch > '9'); do { Num = Num * 10 + ch - '0'; ch = getchar(); } while(ch >= '0' && ch <= '9'); return Num * Flag; }
int N, M, Q; int A[MAX_SIZE * MAX_SIZE][4], Map[MAX_SIZE][MAX_SIZE];
inlinevoidMove(int &Direction, int &Now, int j) { int Next = A[Now][j - Direction + 4 & 3]; for(Direction = 0; A[Next][j - Direction + 6 & 3] != Now; ++Direction); Now = Next; }
intmain() { #ifndef ONLINE_JUDGE // freopen("drink.in", "r", stdin); // freopen("drink.out", "w", stdout); #endif cin >> N >> M >> Q; for(int i = 1; i <= N; ++i) for(int j = 1; j <= M; ++j) Map[i][j] = Get_Int(); for(int i = 1; i <= (N + 2) * (M + 2); ++i) { A[i][0] = i - M - 2; A[i][1] = i + 1; A[i][2] = i + M + 2; A[i][3] = i - 1; } while(Q--) { int x = Get_Int(), y = Get_Int(), c = Get_Int(); int Direction = 0, Now = 1; vector< pair<int, int> > Border[4][2]; for(int i = 1; i <= x; ++i) Move(Direction, Now, 2); for(int i = 1; i <= y; ++i) Move(Direction, Now, 1); for(int j = 0; j < 4; ++j) for(int i = 1; i <= c; ++i) { Border[j][0].push_back(make_pair(Direction, Now)); Move(Direction, Now, j); Border[j][1].push_back(make_pair(Direction, Now)); Move(Direction, Now, j + 2 & 3); if(i != c) Move(Direction, Now, j + 1 & 3); } for(int j = 0; j < 4; ++j) for(int i = 0; i < c; ++i) { pair<int, int> Now = Border[j][1][i]; A[Now.second][j + 6 - Now.first & 3] = Border[j + 3 & 3][0][i].second; Now = Border[j][0][i]; A[Now.second][j + 4 - Now.first & 3] = Border[j + 1 & 3][1][i].second; } } int Direction = 0, Now = 1; for(int i = 1; i <= N; ++i) { Move(Direction, Now, 2); int temp = Direction, Next = Now; for(int j = 1; j <= M; ++j) { Move(temp, Next, 1); printf("%d ", Map[(Next - 1) / (M + 2)][(Next - 1) % (M + 2)]); } printf("\n"); } fclose(stdin); fclose(stdout); return0; }