传统题 1000ms 256MiB

伏击桥下探情况

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

豫让探得赵襄子将过汾桥,遂藏身桥下。他屏息凝神,握紧利刃,只待车驾经过时跃起行刺。连日饥寒交迫,仍坚守不退。为了更好地完成目标,他将桥面划分为 nnmm 列的监视矩阵 gg,记录着每一处的守备情况。

豫让观察到,守备情况不断地在调整。在 qq 次守备调整中,每次调整给出两个整数 x,yx,y (1x,yn1 \le x,y \le n),需要将第 xx 行与第 yy 行的守备布置完全互换。具体来说,你需要交换 gx,1g_{x,1}gy,1g_{y,1}gx,2g_{x,2}gy,2g_{y,2}gx,3g_{x,3}gy,3g_{y,3}、…、gx,mg_{x,m}gy,mg_{y,m}

请输出经过所有调整后的最终守备布置。

输入格式

第一行两个整数 n,mn,m (1n,m106,n×m1061 \le n,m \le 10^6, n \times m \le 10^6)。

接下来 nn 行,每行 mm 个整数,描述这个整数矩阵 gg,其中输入第 i+1i+1jj 个整数表示 gi,jg_{i,j} (0gi,j10 \le g_{i,j} \le 1) 的值,相邻两个整数用一个空格隔开。

接下来一行一个整数 qq (1q1061 \le q \le 10^6),表示调整次数。

接下来 qq 行,每行两个整数 x,yx,y (1x,yn1 \le x,y \le n),表示一次调整。

输出格式

总共 nn 行,每行 mm 个整数,其中第 ii 行第 jj 个整数表示操作结束后 gi,jg_{i,j} 的值,一行相邻两个数字用一个空格隔开。

3 4
1 0 1 0
1 1 1 1
0 0 0 0
2
1 2
2 3
1 1 1 1
0 0 0 0
1 0 1 0