小 Stjepan 经常喜欢和朋友们一起去萨格勒布一家著名的夜总会玩耍。然而,Stjepan 有时会喝太多苏打水,因摄入过多的糖分而感到头晕目眩。昨晚就是这样一个例子,这就是为什么 Stjepan 脑海中一直浮现着同一个画面。那是一些数字螺旋的涂鸦。由于他不太记得这个画面具体长什么样,但他可以描述它,因此他请求你帮他重建这个画面。
Stjepan 记得这个画面是一个由 $N$ 行 $M$ 列的数字组成的表格。此外,他记得表格中共有 $K$ 个螺旋。对于每个螺旋,其起点以及移动方向(顺时针或逆时针)都是已知的。下图展示了一个例子。这些螺旋通过以下方式,在恰好 $10^{100}$ 步内创建了 Stjepan 的画面:
- 初始时,表格为空,每个螺旋都位于其各自的起点。
- 在接下来的每一步中,每个螺旋都会移动到它的下一个位置。螺旋在某些时候可能会离开表格的边界,但之后也可能会重新进入表格。
- 在恰好 $10^{100}$ 步之后,对于表格中的每个格子,其最终数值是最早触碰到该格子的任意一个螺旋在触碰时的步数。
图 1:逆时针移动的螺旋
图 2:顺时针移动的螺旋
输入格式
输入的第一行包含正整数 $N, M$ ($1 \le N, M \le 50$) 和 $K$ ($1 \le K \le N \times M$)。
接下来的 $K$ 行,每行包含三个正整数 $X_i, Y_i$ 和 $T_i$ ($1 \le X_i \le N, 1 \le Y_i \le M, 0 \le T_i \le 1$),分别表示第 $i$ 个螺旋的起始位置和它的方向($0$ 表示顺时针,$1$ 表示逆时针)。没有两个螺旋会从同一个格子开始。
输出格式
你必须输出 $N$ 行,每行包含 $M$ 个数字,表示每个螺旋移动 $10^{100}$ 步后的表格。
子任务
在占总分 50% 的测试用例中,满足:$N=M$ 且 $K=1$ 且 $X_i=Y_i=\lfloor \frac{N+1}{2} \rfloor$,即 $X_i$ 和 $Y_i$ 等于 $N+1$ 整除以 2 的商。
样例
输入样例 1
3 3 1 2 2 0
输出样例 1
9 2 3 8 1 4 7 6 5
输入样例 2
3 3 1 2 2 1
输出样例 2
3 2 9 4 1 8 5 6 7
输入样例 3
3 3 2 1 1 0 1 2 0
输出样例 3
1 1 4 6 5 5 19 18 17
说明
第三个样例的解释:
| A10 | A11, B10 | A12, B11 | A13, B12 | B13 |
| A9 | A2, B9 | A3, B2 | A14, B3 | B14 |
| A8 | A1, B8 | A4, B1 | A15, B4 | B15 |
| A7 | A6, B7 | A5, B6 | A16, B5 | B16 |
| A20, B21 | A19, B20 | A18, B19 | A17, B18 | B17 |
为了简单起见,第一个螺旋的数字前加上了字母 A,第二个螺旋的数字前加上了字母 B。表中仅显示了第一个螺旋的前 20 步和第二个螺旋的前 21 步。灰色背景的格子(即中间的 $3 \times 3$ 区域)是我们感兴趣的表格中的格子,所有其他格子都超出了表格边界,但展示它们是为了说明螺旋在表格外移动的方式。