说明:题目“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$ 和一个字符串 $S$,分别表示要分割的部分数量和字符串。
输出格式
对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 为 POSSIBLE(如果 Amir 能赢)或 IMPOSSIBLE(如果他不能赢)。如果他能赢,输出第二行,包含 $t_1 \ t_2 \ \dots \ t_P$,其中 $t_i$ 是你为 Amir 找到的获胜分割方案中的第 $i$ 个部分。如果存在多种解,你可以输出其中任意一个。
数据范围
$1 \le T \le 100$。
$S$ 中的每个字符都是大写英文字母 A 到 Z。
测试集 1(可见判定)
$2 \le P \le 3$。 $P \le |S| \le 100$。
测试集 2(隐藏判定)
$2 \le P \le 100$。 $P \le |S| \le 10^5$。
样例
样例输入 1
3 3 CODEJAM 2 ABABABABAAAA 3 AABBCDEEFGHIJJKLMNOPQRRSTUVWXYZZ
样例输出 1
Case #1: POSSIBLE C O DEJAM Case #2: POSSIBLE ABABABABA AAA Case #3: IMPOSSIBLE
说明 1
在样例 1 中,Badari 无法将 DEJAM 重新排列为字典序大于 O 的字符串,因此 Amir 必胜。
在样例 2 中,AAA 保证在字典序上小于任何包含超过 3 个字母的字符串的重排,因此 Amir 也获胜。
在样例 3 中,所有可能的分割方式得到的部分列表都已经按字典序排序,因此 Amir 不可能获胜。