题目描述
NOIP 之后,机房里的各位都开始每天警钟长鸣。为了防止警钟被敲烂,他们会不断交换警钟的位置。
机房共有 4nm 个座位,排成 2n 行、2m 列的矩形网格。第 i 行第 j 列的位置记为 (i,j)。
每个座位上放有一个警钟。初始时,警钟按照从上到下、从左到右的顺序编号为 1 到 4nm。也就是说,位置 (i,j) 上警钟的初始编号为
(i−1)×2m+j.
把整个网格划分成若干个互不重叠的 2×2 小网格,并将这些小网格按黄、白两色交替染色,其中左上角的小网格为黄色。下图给出了 n=2,m=3 时的染色情况。

每一天,所有警钟的位置会同时发生以下五种变换之一:
- 对所有 i∈[1,2n]、j∈[1,m],交换位置 (i,2j−1) 与 (i,2j) 上的警钟;
- 对所有 i∈[1,2n]、j∈[1,m−1],交换位置 (i,2j) 与 (i,2j+1) 上的警钟;
- 对所有 i∈[1,n]、j∈[1,2m],交换位置 (2i−1,j) 与 (2i,j) 上的警钟;
- 对所有 i∈[1,n−1]、j∈[1,2m],交换位置 (2i,j) 与 (2i+1,j) 上的警钟;
- 对每个 2×2 小网格独立进行旋转:黄色小网格中的四个警钟顺时针旋转一格,白色小网格中的四个警钟逆时针旋转一格。
给定连续 q 天中每天采用的变换类型,请求出全部变换结束后,每个座位上的警钟编号。
输入格式
第一行包含三个整数 n,m,q。
第二行包含 q 个整数 x1,x2,…,xq,其中 xi 表示第 i 天采用的变换类型。
输出格式
输出 2n 行,每行包含 2m 个整数。
第 i 行第 j 个整数表示最终位于位置 (i,j) 上的警钟编号。
样例输入
2 3 5
3 1 4 2 5
样例输出
20 8 12 24 21 9
22 10 7 19 23 11
4 16 13 1 5 17
2 14 18 6 3 15
样例解释
初始状态及每次操作后的警钟编号如下图所示。

数据范围
对于全部数据:
1≤n,m,q≤106,
1≤n×m≤2×106,
1≤xi≤5.
| 子任务 |
分值 |
特殊限制 |
| 1 |
20 |
xi∈{1,3,5} |
| 2 |
xi∈{1,2} |
| 3 |
xi∈{1,2,3,4} |
| 4 |
40 |
无额外限制 |