你可能还记得在学校的头几年里,人类至少在 7000 年前就发明了酿造啤酒。从那时起,啤酒的总消耗量一定是巨大的,而且可以肯定的是,在未来的几千年里,消耗率也不会下降。
为了庆祝这些事实,我们邀请你实现一个看似与酿造啤酒无关的游戏。然而,很有可能在成功实现后,你会感到有点头晕,就像你喝的啤酒超过了每日限额一样……
游戏在一个由不同类型的方块组成的 $M \times N$ 矩形网格上进行。
动物与食物
网格上有一定数量的动物,每只动物占据一个方块。 草会生长,羊吃草,狼吃羊,狼和羊都可能因饥饿而死亡。
回合与动物行为
每一回合按以下顺序执行动作:
- 网格上的所有动物移动。每只狼向东(向右)移动到相邻的方块。如果狼无法移动,则狼移动到其所在行的最西端方块。每只羊向南(向下)移动到相邻的方块。如果羊无法移动,则羊移动到其所在列的最北端方块。
- 如果狼和羊占据同一个方块,狼会吃掉羊,该方块变为“带有尸体的土壤”(Soil with carcass)方块。
- 如果羊位于“带有草的土壤”(Soil with grass)方块上,羊会吃掉草,该方块变为“土壤”(Soil)方块。
- 如果狼在包括当前回合在内的最后 10 个回合中没有进食,它就会死亡,该方块变为“带有尸体的土壤”方块。
- 如果羊在包括当前回合在内的最后 5 个回合中没有进食,它就会死亡,该方块变为“带有尸体的土壤”方块。
方块类型及其变化
共有三种类型的方块。方块的类型可能会在游戏过程中发生变化。
- 土壤(Soil)方块:在游戏开始后的 3 个回合后,或者在方块变为土壤方块后的 3 个回合后,该方块变为“带有草的土壤”方块。
- 带有草的土壤(Soil with grass)方块:如果草被羊吃掉,该方块立即变为土壤方块。草会在 3 个回合后再次在该方块上生长。
- 带有尸体的土壤(Soil with carcass)方块:每当有动物在任何类型的方块上死亡时,该方块立即变为“带有尸体的土壤”方块。动物仍然可以移动到这个方块,但草永远不会再在这个方块上生长。随着游戏的进行,更多的尸体可能会堆积在该方块上。
输入格式
输入的第一行包含三个整数 $T, N$ 和 $M$ ($1 \le T \le 100, 1 \le M, N \le 20$),其中 $T$ 是回合数,$M$ 是行数,$N$ 是网格的列数。 接下来的 $M$ 行每行包含 $N$ 个字符。字符表示方块的类型:
.(点字符)表示土壤方块S表示带有羊的土壤方块W表示带有狼的土壤方块
输出格式
输出 $M$ 行,每行包含 $N$ 个字符,描述第 $T$ 回合结束后的网格状态。如果方块上有动物,输出:
W表示该方块上有狼S表示该方块上有羊
否则,输出:
*表示带有尸体的土壤方块#表示带有草的土壤方块.(点字符)表示土壤方块
样例
输入 1
6 6 5 ..S.. ..... .S... ..... ....W .S...
输出 1
##S## ##### ##### #.### W*.## #S.##
输入 2
14 3 3 S.. W.. ...
输出 2
.## #*# S##
输入 3
2 3 1 S . .
输出 3
. . S
输入 4
3 3 1 S . .
输出 4
S # #
输入 5
4 3 1 S . .
输出 5
# S #
输入 6
5 3 1 S . .
输出 6
# . S