U155893 Treasure

题目描述

有 N 个宝箱。一个宝箱只能用一种特定类型的钥匙打开。而且一把钥匙只能使用一次。宝箱中除了有宝物还可能有一个或多个钥匙,可能有多把同一类型的钥匙。开宝箱的过程中,你可以持有任意多把钥匙。 现在,你身上已经有若干把钥匙,而所有宝箱都尚未打开。请你找出一种方法打开所有宝箱。如果不只有一种方法,输出其中字典序最小的一种;如果不可能,输出"IMPOSSIBLE"。

输入格式

第一行是一个正整数 T,表示测试数据组数。接下来依次是 T 组测试数据。 每组数据的第一行是两个正整数 K, N,表示你最初持有 K 把钥匙和一共有 N 个宝箱。 第二行是 K 个正整数,表示你持有的每把钥匙的类型。接下来 N 行,每行的开头是两个整数 Ti, Ki,表示第 i 个宝箱需要消耗一把类型 Ti 的钥匙来打开,宝箱中含有 Ki 把钥匙。之后跟着 Ki 个整数,表示宝箱中每把钥匙的类型。

输出格式

输出 T 行,依次表示每组测试数据的答案。 如果测试数据有解,则输出 N 个正整数,表示打开宝箱的顺序,有多种解的话输出其中字典序最小的;否则输出 "IMPOSSIBLE"。

说明/提示

【数据范围】 40% 的数据:1