“污染巧克力游戏”(Tainted chocolate game)的核心是一个经典的巧克力棒,它被平行于巧克力边缘的矩形凹槽网格分割成若干正方形格子。其中一些格子被一种极苦的物质污染了,这使得被污染的格子(几乎)无法食用。
游戏由两名玩家轮流进行。在一次合法的移动中,玩家必须吃掉巧克力棒的一部分。允许的操作是:沿着其中一条凹槽将当前的巧克力棒切成两个较小的巧克力棒,然后吃掉其中的一个。吃掉含有至少一个被污染格子的巧克力棒的玩家将输掉游戏。
所有被污染格子的位置在游戏开始时都是已知的。所有其他格子都是可以安全食用的。每位玩家都试图避免吃掉含有一个或多个被污染格子的巧克力棒,因为一旦发生这种情况,该玩家会不由自主地做出他们个人最难看的痛苦表情,这不仅会给另一位玩家带来极大的乐趣,也会成为旁观者的笑料。
在本题中,你需要编写一个程序来玩这个“污染巧克力游戏”。我们忽略模拟玩家表情和吃巧克力的代码部分,而只关注获胜的移动。
一次合法的移动由一个方向字符串和一个正整数 $X$ 描述。方向字符串是以下四个字符串之一:top(上)、bottom(下)、left(左)或 right(右)。该描述意味着:从当前剩余巧克力棒由给定方向字符串指定的边缘开始数,在第 $X$ 条凹槽处将巧克力棒切开。然后,玩家吃掉该方向那一侧的部分。
输入格式
输入的第一行包含三个整数 $R, C, K$($1 \le R, C \le 10^5$,$1 \le K \le 100$)。其中 $R$ 是行数,$C$ 是列数,$K$ 是巧克力棒中被污染格子的数量。
接下来的 $K$ 行,每行包含两个整数 $A$ 和 $B$($1 \le A \le R$,$1 \le B \le C$),表示一个被污染格子的坐标。左上角格子的坐标为 $(1, 1)$。
输入的其余部分取决于你的输出。对于你的每一次合法移动,输入中都会出现一行,包含对手的合法移动描述,或者字符串 yuck!(表示对手输掉了游戏)。在后一种情况下,你的程序应当终止。
输出格式
在读取巧克力棒的描述后,你可以决定是否先手开始游戏。如果你想后手(让对手先开始),请输出一行包含字符串 pass。这个特殊的字符串只能出现在你输出的第一行。
然后,对于你的每一次移动,输出一行包含该合法移动的描述。如果你的程序输出了除通往胜利的合法移动序列之外的任何内容,都将被判定为 Wrong Answer。
在打印每次移动描述后,请刷新输出缓冲区。例如,在 C++ 中可以使用 fflush(stdout) 或 cout.flush(),在 Java 中可以使用 System.out.flush(),在 Python 中可以使用 stdout.flush()。
样例
输入样例 1
4 6 2 2 3 4 4 right 2 yuck!
输出样例 1
top 1 left 2
说明 1
为了清晰起见,上述数据是交错展示的,以说明你的程序与系统之间的交互顺序。请注意,在实际数据中不会有空行,你的输出中也不得有任何空行。
输入样例 2
3 5 1 2 3 left 1 left 1 right 1 yuck!
输出样例 2
pass right 1 top 1 bottom 1
图 1:样例 1 游戏过程示意图