说明:题目 "Game Sort: Part 1" 和 "Game Sort: Part 2" 的题干主要部分相同,仅最后一段不同。这两个问题可以独立求解。
Amir 和 Badari 正在玩一个排序游戏。游戏开始时,由公正的裁判选定一个字符串 $S$ 和一个整数 $P$。然后,Amir 必须将 $S$ 分割成恰好 $P$ 个连续的非空部分(子串)。例如,如果选定的字符串是 CODEJAM 且 $P = 3$,Amir 可以将其分割为 [COD, EJA, M] 或 [CO, D, EJAM],但不能分割为 [COD, EJAM]、[COD, JA, M]、[EJA, COD, M] 或 [CODE, EJA, M]。
接着,Badari 必须重新排列每个部分内的字母,使得这些部分组成的列表按字典序非递减排列。如果她能做到,她就赢了。否则,Amir 赢。
给定 Amir 所做的分割,你能帮助 Badari 赢得游戏,或者指出这是不可能的吗?
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例包含两行。第一行包含一个整数 $P$,即 Amir 分割出的部分数量。第二行包含 $P$ 个字符串 $S_1, S_2, \dots, S_P$,按顺序表示这些部分。
输出格式
对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 为 POSSIBLE(如果 Badari 能赢得游戏)或 IMPOSSIBLE(如果她不能)。如果她能赢得游戏,则输出第二行,包含 $t_1\ t_2\ \dots\ t_P$,其中 $t_i$ 是 $S_i$ 中字母的一种重排,且对于所有 $i$,满足 $t_i$ 在字典序上小于或等于 $t_{i+1}$。如果存在多种解,你可以输出其中任意一种。
数据范围
$1 \le T \le 100$。
$S_i$ 的每个字符均为大写英文字母 A 到 Z。
子任务 1(可见判定)
$2 \le P \le 3$。 $1 \le |S_i| \le 8$,对于所有 $i$。
子任务 2(隐藏判定)
$2 \le P \le 100$。 $1 \le |S_i| \le 100$,对于所有 $i$。
样例
样例输入 1
3 3 CO DEJ AM 3 CODE JA M 2 ABABABAB AAA
样例输出 1
Case #1: POSSIBLE CO DEJ MA Case #2: POSSIBLE CODE JA M Case #3: IMPOSSIBLE
说明
在样例 1 中,Badari 还可以通过其他方式获胜。其中两种方式是 [CO, JED, MA] 和 [CO, EJD, MA]。
在样例 2 中,Badari 只需保持 Amir 给她的所有部分不变即可获胜,但其他方式也是可能的。
在样例 3 中,Amir 已经确保了自己获胜,Badari 没有获胜的选项。