这是一个交互式问题。
Taja 可以轻松赢得这个游戏,但她的朋友们都做不到。现在她邀请你来玩这个游戏。
游戏设备包括一个 $n \times n$ ($5 \le n \le 40$) 的场地、一枚棋子、两枚硬币(COIN1, COIN2)、两颗带有基准方向的骰子(DICE1, DICE2)以及许多大小为一格的方块。
| 名称 | 面数 | 面 |
|---|---|---|
| COIN1. 移动硬币 | 2 | SLIDE, RAM |
| COIN2. 修改硬币 | 2 | PLACE, REMOVE |
| DICE1. 第一颗方向骰子 | 4 | N (北), S (南), W (西), E (东) |
| DICE2. 第二颗方向骰子 | 8 | N (北), S (南), W (西), E (东), NW (西北), NE (东北), SW (西南), SE (东南) |
游戏开始前,棋子和一些方块被放置在场地上。随后玩家进行一系列操作。首先,玩家选择一枚硬币并投掷它以确定动作。然后,玩家选择一颗骰子并投掷它以确定方向 $dir$。之后会发生以下四种动作之一:
| 硬币字符串 | 动作 |
|---|---|
| SLIDE | 棋子沿 $dir$ 方向在空单元格中移动,直到棋子撞到方块或迷宫边界 |
| RAM | 棋子沿 $dir$ 方向在空单元格中移动,直到撞到第一个方块。然后棋子和该方块沿同一方向移动,直到移动的方块撞到另一个方块或场地边界 |
| PLACE | 如果 $dir$ 方向上棋子旁边的相邻单元格为空且在场地内,则在该单元格放置一个方块 |
| REMOVE | 如果 $dir$ 方向上棋子旁边的相邻单元格包含方块且在场地内,则移除该单元格中的方块 |
游戏目标是将棋子移动到终点单元格。本问题的一次查询包含一次硬币投掷和一次骰子投掷。
交互
首先,交互器会给出迷宫的大小、迷宫布局以及终点单元格的坐标。然后进行以下 4 步操作:
- 裁判程序显示棋子的坐标,或通知棋子已到达终点。
- 你的程序显示硬币名称。
- 裁判程序显示硬币上的动作名称。
- 你的程序显示骰子名称。
- 裁判程序显示骰子上的方向名称以及动作 "RAM" 的附加信息。
输入格式
标准输入的第一行包含一个整数 $n$ —— 迷宫的大小。接下来的 $n$ 行包含 $n$ 个字符,"." (ASCII 46) 或 "#" (ASCII 35),分别表示空单元格和有方块的单元格。 下一行包含两个整数 $r_f$ 和 $c_f$ —— 终点单元格的行号和列号。 左上角为 $(1, 1)$,右下角为 $(n, n)$。终点单元格和初始单元格均为空。 接下来的组描述了每一步:
- 每组的第一行包含两个整数 $r, c$ —— 棋子的行号和列号,如果棋子到达了终点,则为 $(-1, -1)$。
- 下一行包含硬币上显示的动作名称。
- 下一行包含骰子上显示的方向名称。
- 如果当前动作为 "RAM",接下来的两个字符串包含两个整数 $r_1, c_1$ 和 $r_2, c_2$,表示棋子撞到了坐标为 $(r_1, c_1)$ 的方块,并将该方块移动到了单元格 $(r_2, c_2)$。
北方向对应行号减小。南方向对应行号增加。西方向对应列号减小。东方向对应列号增加。 硬币或骰子的每一面出现的概率相同。
样例
输入格式 1
5 #.... ..... ..... ..... ..#.. 4 3 1 5 PLACE W 1 5 RAM S 6 5 6 5 5 5 RAM W 5 3 5 1 5 2 PLACE NE 5 2 RAM NE 4 3 2 5 3 4 REMOVE NE 3 4 PLACE S 3 4 SLIDE W 3 1 RAM S 5 1 5 1 4 1 SLIDE E -1 -1
输出格式 1
COIN2 DICE1 COIN1 DICE1 COIN1 DICE1 COIN2 DICE2 COIN1 DICE2 COIN2 DICE2 COIN2 DICE1 COIN1 DICE1 COIN1 DICE1 COIN1 DICE1
样例迷宫的初始状态
路径表示如下: