按照一张古老的地图,你偶然发现了恐怖海盗拉里的秘密宝藏!
宝藏由 $N$ 个锁着的宝箱组成,每个宝箱只能由特定类型的钥匙打开。此外,一旦一把钥匙被用于打开宝箱,它就不能再被使用。在每个宝箱里,你当然会找到大量的财宝,而且你可能还会找到一把或多把可以用来打开其他宝箱的钥匙。一个宝箱可能包含多把相同类型的钥匙,你可以持有任意数量的钥匙。
你已经拥有至少一把钥匙,并且你的地图上说明了在各个宝箱内可以找到哪些其他钥匙。有了所有这些信息,你能弄清楚如何打开所有的宝箱吗?
例如,假设宝藏由以下四个宝箱组成,并且你开始时恰好有一把 1 型钥匙:
| 宝箱编号 | 打开宝箱所需的钥匙类型 | 宝箱内的钥匙类型 |
|---|---|---|
| 1 | 1 | 无 |
| 2 | 1 | 1, 3 |
| 3 | 2 | 无 |
| 4 | 3 | 2 |
如果你按照 2, 1, 4, 3 的顺序打开宝箱,你就可以打开这个例子中的所有宝箱。如果你先打开 1 号宝箱,那么你将用掉你唯一的钥匙,从而陷入困境。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含两个正整数 $K$ 和 $N$,分别表示你开始时拥有的钥匙数量和需要打开的宝箱数量。
接下来一行包含 $K$ 个整数,表示你开始时拥有的钥匙类型。
此后有 $N$ 行,每行代表一个宝箱。每行以整数 $T_i$ 和 $K_i$ 开头,分别表示打开该宝箱所需的钥匙类型和宝箱内钥匙的数量。这两个整数后面跟着 $K_i$ 个整数,表示宝箱内包含的钥匙类型。
输出格式
对于每个测试用例,输出一行 "Case #x: C_1 C_2 ... C_N",其中 x 是用例编号(从 1 开始),$C_i$ 表示你应该打开的第 $i$ 个宝箱的索引(从 1 开始)。
如果有多种打开所有宝箱的方法,请选择“字典序最小”的一种。换句话说,你应该使 $C_1$ 尽可能小;如果存在多种使 $C_1$ 最小的方法,则选择使 $C_2$ 尽可能小的方法,依此类推。
如果无法打开所有宝箱,则输出一行 "Case #x: IMPOSSIBLE"。
数据范围
$1 \le T \le 25$。 $1 \le K$。 所有钥匙类型均为 1 到 200 之间的整数。
小数据(测试集 1 - 可见;20 分)
$1 \le N \le 20$。 在每个测试用例中,总共最多有 40 把钥匙。
大数据(测试集 2 - 隐藏;60 分)
$1 \le N \le 200$。 在每个测试用例中,总共最多有 400 把钥匙。
样例
输入格式 1
3 1 4 1 1 0 1 2 1 3 2 0 3 1 2 3 3 1 1 1 1 0 1 0 1 0 1 1 2 1 1 1
输出格式 1
Case #1: 2 1 4 3 Case #2: 1 2 3 Case #3: IMPOSSIBLE