U155893 Treasure
题目描述
有 N 个宝箱。一个宝箱只能用一种特定类型的钥匙打开。而且一把钥匙只能使用一次。宝箱中除了有宝物还可能有一个或多个钥匙,可能有多把同一类型的钥匙。开宝箱的过程中,你可以持有任意多把钥匙。
现在,你身上已经有若干把钥匙,而所有宝箱都尚未打开。请你找出一种方法打开所有宝箱。如果不只有一种方法,输出其中字典序最小的一种;如果不可能,输出"IMPOSSIBLE"。
输入格式
第一行是一个正整数 T,表示测试数据组数。接下来依次是 T 组测试数据。
每组数据的第一行是两个正整数 K, N,表示你最初持有 K 把钥匙和一共有 N 个宝箱。
第二行是 K 个正整数,表示你持有的每把钥匙的类型。接下来 N 行,每行的开头是两个整数 Ti, Ki,表示第 i 个宝箱需要消耗一把类型 Ti 的钥匙来打开,宝箱中含有 Ki 把钥匙。之后跟着 Ki 个整数,表示宝箱中每把钥匙的类型。
输出格式
输出 T 行,依次表示每组测试数据的答案。
如果测试数据有解,则输出 N 个正整数,表示打开宝箱的顺序,有多种解的话输出其中字典序最小的;否则输出 "IMPOSSIBLE"。
说明/提示
【数据范围】
40% 的数据:1