2815: 复杂的按钮

内存限制:512 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:4 解决:2

题目描述

小k在遗迹探险时遇到了n个按钮,刚开始所有按钮都处于开状态,小k的经验告诉他把所有按钮都关上会有“好事”发生,可是有些按钮按下时会让其他一些已经闭合的按钮弹开。经过研究,每个按钮都对应着一个固定的弹开集合,这个按钮按下时,弹开集合中所有的按钮都会变为开状态。现在小k想知道是否能让所有的按钮变为闭状态。如果能,打印最少步数以及方案。否则,打@solution。

输入

第一行一个整数n,表示n个按钮

接下来n行,表示编号为l到n个按钮 的弹开集合

格式为mi,B1B2 B3…Bmi。

表示编号为i的按钮按下,会让编号为B1B2 B3…Bmi 的按钮弹开(注:其中不会出现重复)

输出

如果无解,输出"no solution".

否则,第一行输出最少步数ans,第二行输出用空格分开的ans个数,表示按顺序按下 编号为这些数的按钮就可以解决。

如果有多种方案,输出字典序最小的方案。

样例输入 复制

6
2  2  3
0
2  4  5
0
0
0

样例输出 复制

6
1 2 3 4 5 6

提示

1≤n≤30000

令M=m1+m2+…+mn

0≤M≤1000000