T130013 游园会盖章
题目描述
传智专修学院举办了一场游园活动,其中一个非常重要的环节就是收集印章。集章卡是一张高度宽度分别为 $h,w(20\le h \le 1000,50\le w \le 2000)$ 的白纸。初始情况下每个单位像素都是由 `.` 来填充(代表白色)。
现在小 A 在一个摊位上盖章。由于小 A 很喜欢这个摊位印章的样式,所以他会连续盖上 $n(1\le n \le 2000)$ 次印。这个印章是宽 50、高 20 的图形,是这样:
```
...........................,]]OOO@@@@OOO]`........
....................,]OO@@@@@@@@@@@@@@@@@@@@O`....
................./O@@@@@@@@@@@@@@@@@@@@@@@@@@@@^..
............../O@@@@@@@@@@@@@@@OOOOOOO@@@@@@@@@@@.
..........,/@@@@@@@@@@@@O/[.............[O@@@@@@@\
........,O@@@@@@@@@@O/`..................,O@@@@@@O
.......O@@@@@@@@@O`......]OO@@@O\`........O@@@@@@@
.....,O@@@@@@@@/`.....]O@@@@@@@@@@^.......O@@@@@@@
...,/@@@@@@@O/...../@@@@@@@@@@@@@@O....../@@@@@@@0
..=@@@@@@@O`...../@@@@@@@@@@@@@@@@^.....O@@@@@@@O.
./@@@@@@@/......O@@@@@@@@@@@@@@@O`..../@@@@@@@@O..
=@@@@@@@O......O@@@@@@@@@@@@@@@^....O@@@@@@@@@O...
O@@@@@@@^.....=@@@@@@@@@@@@@O[..../@@@@@@@@@O`....
@@@@@@@O.......\@@@@@@@@O[...../O@@@@@@@@@O`......
@@@@@@@@^.........[`.......]OO@@@@@@@@@@O`........
O@@@@@@@@O\............]/@@@@@@@@@@@@O/...........
=@@@@@@@OOOoo`........O@@@@@@@@@@@@/`.............
..\OOOOO*,`*..........O@@@@@@@@@O`................
.....,[[..............O@@@@@@O`...................
......................O@@@@@@O....................
```
由于盖章时手不太稳,所以盖章时也有可能会使这个图样旋转 180°(当然不同的字符只代表不同的颜色,字符本身不需要翻转)。
现在已经知道了小 A 的 $n$ 次盖章信息,包括左上角坐标 $x,y$,和旋转方式 $r$。也就是说,这个图样旋转后的左上角,位于集章卡的第 $x$ 行 $y$ 列的位置,集章卡的左上角坐标是 $(0,0)$。
需要特别注意的是,后盖的印章可能和之前改的印章重叠。后盖的章有颜色的部分(不是 `.` 的部分)会覆盖之前印上的图形。
输入格式
第一行三个整数 $n,h,w$ 代表印章次数,代表集章卡的高度和宽度。
接下来 $n$ 行,每行三个整数 $x,y,r$,描述每次盖章的信息。其中 $(x,y)$ 是图样(旋转后)左上角的坐标,$r(0\le r\le 1)$ 代表旋转方式,代表图样顺时针旋转 $r\times 180\degree$ 。保证印章的图案至少有一部分在集章卡内部。
输出格式
输出一个高度为 $h$,宽度为 $w$ 的字符矩阵,表示全部盖印后的集章卡的样子。评测时会忽略行末空格和输出文件末尾的回车。