#1057. 街区重排

街区重排

题目描述

小 C 负责管理一个由 nn 条横向街道和 mm 条纵向街道组成的城市街区。每条横向街道和每条纵向街道都被赋予了唯一的编号,分别是从 11nn 和从 11mm。现在,小 C 需要执行 qq 次街区改造计划,每次计划的内容如下:

  • 1 x y\textbf{1 x y},将编号为 xx 的横向街道与编号为 yy 的横向街道交换位置,如果 x=yx = y 则不进行交换。
  • 2 x y\textbf{2 x y},将编号为 xx 的纵向街道与编号为 yy 的纵向街道交换位置,如果 x=yx = y 则不进行交换。
  • 3 x y\textbf{3 x y},查询当前位于横向街道 xx 和纵向街道 yy 交汇处的建筑物的编号(假设每个交汇处只有一个建筑物,且每个建筑物的编号是唯一的)。

在所有改造计划执行完毕后,小 C 需要提交一份最终的城市街区布局图,图中应明确标示出每个交汇处的建筑物编号。

输入格式

11 行,输入 33 个整数 n,m,qn, m, q,以空格隔开。
接下来 nn 行,每行输入 mm 个整数 bi,jb_{i, j},代表每个交汇处的建筑物编号,数字之间用空格分隔。
n+1n + 1 行至第 n+qn + q 行,每行输入 33 个整数,以空格隔开,表示一次街区改造计划。

输出格式

设操作 33 一共执行了 ww 次。
1w1 \sim w 行,每行输出一个整数,表示每次查询的建筑物编号。
w+1w + 1 行至第 w+nw + n 行,每行输出 mm 个整数 bi,jb_{i, j},用空格分隔,表示所有改造计划执行后的街区布局图。

样例 #1

样例输入 #1

5 5 10
0 1 0 1 0
1 0 0 1 0
0 1 1 1 0
0 0 0 1 1
0 0 1 0 1
1 2 4
2 3 5
3 2 3
1 3 5
2 1 4
3 5 3
1 4 5
2 5 2
2 3 4
1 2 4

样例输出 #1

1
0
1 0 0 0 1
1 1 0 0 1
0 1 0 1 0
1 0 0 1 0
1 0 1 0 0

提示

数据规模与约定

对于 20%20\% 的数据,1n,m,q1001 \leq n, m, q \le 100
对于另外 20%20\% 的数据,没有操作 11
对于另外 20%20\% 的数据,没有操作 22
对于另外 20%20\% 的数据,没有操作 33
对于 100%100\% 的数据,1n,m1031 \leq n, m \leq 10^31q1051 \leq q \leq 10^50bi,j90 \leq b_{i, j} \leq 9

注意:实际输入时,建筑物编号之间应以逗号分隔,但在此说明中为了清晰,样例输入输出使用了空格代替逗号。