14362 - 符文矩阵变换

上古遗迹中存在一座稳定运行的二维符文矩阵,矩阵的每个方格内都封存着一枚带有整数权值的符文。研究者会按照固定的坐标序列依次激活矩阵内的符文格,每次激活都会根据当前符文的权值奇偶性,触发对应的矩阵换位规则。不同权值的符文会驱动方格向不同方向换位。请你模拟完整的符文激活流程,计算最终的矩阵状态。

给定一个 n 行 m 列的整数矩阵,给定一组有序的激活坐标序列,你需要按顺序依次激活对应方格并执行变换操作,所有操作基于上一次变换后的矩阵状态执行。

对于当前激活的坐标 (x,y) 方格(注意:矩阵的坐标从0开始,如第一行第一列的方格对应的坐标为(0,0),这很重要),设该方格内的数值为 w,变换规则如下:

若 w 为奇数:对当前格子执行左右双向交换操作。

若当前格子在第 1 列(无左侧格子):交换当前行最后一列格子与当前格子右侧相邻格子的值;

若当前格子在第 m 列(无右侧格子):交换当前行第一列格子与当前格子左侧相邻格子的值。

若 w 为偶数:对当前格子执行上下双向交换操作。

若当前格子在第 1 行(无上方格子):交换当前列最后一行格子与当前格子下方相邻格子的值;

若当前格子在第 n 行(无下方格子):交换当前列第一行格子与当前格子上方相邻格子的值。

Input

第一行两个正整数 n,m,分别表示矩阵有n行、m列。

接下来 n 行,每行 m 个整数,描述初始的二维矩阵。

接下来一行一个正整数 k,表示激活坐标的次数。

接下来 k 行,每行两个正整数 x,y,依次表示每次激活的方格坐标(x 行、y 列)。

Output

输出 n 行,每行 m 个整数,为所有激活操作执行完毕后的最终矩阵,相邻整数用单个空格分隔。

Examples

Input

5 5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
2
2 2
0 3

Output

1 2 3 4 5
6 7 8 24 10
11 14 13 12 15
16 17 18 19 20
21 22 23 9 25

Hint

数据范围:5 \le n,m \le 100

数据点分布:

1、50% 数据满足: 0 < x < n-1,0 < y < m-1 2、50% 数据满足: 0 \le x < n, 0\le y < m

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题