#P1904. King's Quest

King's Quest

描述描述
很久很久以前,有一位国王,他有NN个儿子。在王国中住着NN位美丽的姑娘,国王清楚每个儿子喜欢哪些姑娘。由于王子们年轻气盛、想法单纯,某个王子可能会喜欢多位姑娘。

于是,国王命令巫师为每个儿子挑选一位他喜欢的姑娘,让他们能够成婚。巫师完成了这个任务——为每个王子选定了一位姑娘,确保王子喜欢这位姑娘,并且每位美丽的姑娘只能嫁给一位王子。

然而,国王查看名单后说道:“我喜欢你制定的这份名单,但并不完全满意。我希望每个王子都能知道所有他可以迎娶的姑娘。当然,当他迎娶这些姑娘中的任意一位后,对于其他每位王子,你仍然必须能够为他们挑选出各自喜欢的姑娘来成婚。”

这个问题对于巫师来说变得极其困难。你必须解决这个问题,以保住巫师的脑袋。

输入输入
输入的第一行包含整数NN1N20001 \leq N \leq 2000),表示国王儿子的数量。接下来的NN行,每行描述一个王子喜欢的姑娘列表:首先是KiK_i(表示该王子喜欢的姑娘数量),然后是KiK_i个不同的整数,范围从11NN,代表这些姑娘的编号。所有KiK_i的总和不超过200000200000

输入的最后一行是巫师最初制定的名单——包含NN个不同的整数,依次表示每个王子按照这份名单将要迎娶的姑娘编号。保证这份名单是正确的,即每个王子都喜欢他在名单中对应的那位姑娘。

输出输出
输出NN行内容。对于每个王子,首先输出LiL_i(表示他喜欢且可以迎娶的不同姑娘数量,当他迎娶这些姑娘中的任意一位后,其他王子仍能成功迎娶各自喜欢的姑娘),然后输出LiL_i个不同的整数,按升序排列这些姑娘的编号。

输入数据1

4
2 1 2
2 1 2
2 2 3
2 3 4
1 2 3 4

输出数据1

2 1 2
2 1 2
1 3
1 4