AT_arc153_b [ARC153B] Grid Rotations

Description

[problemUrl]: https://atcoder.jp/contests/arc153/tasks/arc153_b 縦 $ H $ 行,横 $ W $ 列のグリッドがあります.はじめ,上から $ i $ 行目,左から $ j $ 列目のマスには英小文字 $ A_{i,j} $ が書かれています. このグリッドに対して $ Q $ 回の操作を行います.$ i $ 回目の操作では,$ 1\leq\ a_i\ \leq\ H-1 $, $ 1\leq\ b_i\leq\ W-1 $ を満たす整数 $ a_i,\ b_i $ が与えられ,次を行います. - グリッド内の長方形領域 $ R_1,\ R_2,\ R_3,\ R_4 $ を次で定める: - 上から $ a_i $ 行,左から $ b_i $ 列の部分を $ R_1 $ とする. - 上から $ a_i $ 行,右から $ W-b_i $ 列の部分を $ R_2 $ とする. - 下から $ H-a_i $ 行,左から $ b_i $ 列の部分を $ R_3 $ とする. - 下から $ H-a_i $ 行,右から $ W-b_i $ 列の部分を $ R_4 $ とする. - $ R_1,\ R_2,\ R_3,\ R_4 $ のそれぞれを $ 180 $ 度回転する. ただし,グリッド内の長方形領域 $ R $ の $ 180 $ 度回転とは,$ R $ において上から $ i $ 番目,左から $ j $ 番目のマスに書かれた文字を,$ R $ において 下から $ i $ 番目,右から $ j $ 番目のマスに移すことをいいます.入出力例の図も参考にしてください. $ Q $ 回すべての操作を行ったとき,操作後のグリッドの状態を出力してください.

Input Format

入力は以下の形式で標準入力から与えられます. > $ H $ $ W $ $ A_{1,1}\cdots\ A_{1,\ W} $ $ \vdots $ $ A_{H,1}\cdots\ A_{H,\ W} $ $ Q $ $ a_1 $ $ b_1 $ $ \vdots $ $ a_Q $ $ b_Q $

Output Format

操作後のマス $ (i,j) $ に書かれている文字を $ B_{i,j} $ とするとき,操作後のグリッドの状態を,次の形式で出力してください. > $ B_{1,1}\cdots\ B_{1,\ W} $ $ \vdots $ $ B_{H,1}\cdots\ B_{H,\ W} $

Explanation/Hint

### 制約 - $ 2\leq\ H,\ W $ かつ $ HW\ \leq\ 5\times\ 10^5 $ - $ A_{i,j} $ は英小文字 - $ 1\leq\ Q\leq\ 2\times\ 10^5 $ - $ 1\leq\ a_i\leq\ H\ -\ 1 $ - $ 1\leq\ b_i\leq\ W\ -\ 1 $ ### Sample Explanation 1 グリッドの状態は次の図のように変化します. !\[\](https://img.atcoder.jp/arc153/5503f0a5f92e488238556b943aa1d6b7.png) ### Sample Explanation 2 グリッドの状態は次の図のように変化します. !\[\](https://img.atcoder.jp/arc153/353f0b30a9561e38967fb3aedf5767c5.png) ### Sample Explanation 3 グリッドの状態は次の図のように変化します. !\[\](https://img.atcoder.jp/arc153/655a0ac98f0625e806f6abc97853a437.png)