#P17194. [KOI 2026 #2] 分发零食

[KOI 2026 #2] 分发零食

题目描述

NN 名学生和 NN 份零食。学生和零食均分别编号为 1,2,,N1,2,\cdots,N

每名学生都喜欢这 NN 份零食中的至少一份。更具体地,第 ii1iN1 \le i \le N)名学生喜欢 CiC_i 份零食,这些零食的编号分别为 Ai,1,Ai,2,,Ai,CiA_{i,1},A_{i,2},\cdots,A_{i,C_i}

起初,房间里恰好各放有一份这 NN 种零食。现要按照以下过程把零食分发给学生:

  • 选择一个合适的顺序,每次让一名学生进入房间。
  • 进入房间的学生会拿走房间中剩余的、自己喜欢的所有零食。如果房间中已经没有任何自己喜欢的零食,则什么也不拿。

请合理确定 NN 名学生进入房间的顺序,并判断是否能使每名学生都恰好拿走一份零食。若可以,请输出任意一种满足条件的顺序。

输入格式

第一行给出表示学生数和零食数的整数 NN

接下来的 NN 行给出 NN 名学生所喜欢零食的信息。其中第 ii1iN1 \le i \le N)行依次给出以空格分隔的整数 CiC_i 以及 CiC_i 个整数 Ai,1,Ai,2,,Ai,CiA_{i,1},A_{i,2},\cdots,A_{i,C_i}

输出格式

如果不存在一种顺序能让所有学生都恰好拿走一份零食,则在第一行输出 -1

如果学生按照 P1,P2,,PNP_1,P_2,\cdots,P_N 的编号顺序进入房间时,每名学生都能恰好拿走一份零食,则在第一行输出 NN 个以空格分隔的整数 P1,P2,,PNP_1,P_2,\cdots,P_N

如果存在多种可行输出,输出其中任意一种均视为正确。

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

提示

样例 1 解释

每名学生喜欢的零食如下:

  • 11 名学生喜欢第 11、第 22 份零食。
  • 22 名学生喜欢第 22、第 33 份零食。
  • 33 名学生喜欢第 22 份零食。

若第 33、第 11、第 22 名学生依次进入房间,则每名学生都恰好拿走一份零食。

  • 起初,房间中第 11、第 22、第 33 份零食各有一份。
  • 33 名学生进入房间后拿走第 22 份零食。此后房间中剩下第 11、第 33 份零食。
  • 11 名学生进入房间后拿走第 11 份零食。此后房间中只剩下第 33 份零食。
  • 22 名学生进入房间后拿走第 33 份零食。

同理,即使第 33、第 22、第 11 名学生依次进入房间,所有学生也都恰好拿走一份零食。

样例 2 解释

两名学生都喜欢全部两种零食,因此无论学生以何种顺序进入房间,最先进入的学生都会拿走所有零食。

限制条件

  • 给出的所有数均为整数。
  • 1N2000001 \le N \le 200\,000
  • 对于每个整数 ii1iN1 \le i \le N),1CiN1 \le C_i \le N
  • C1+C2++CN500000C_1+C_2+\cdots+C_N \le 500\,000
  • 对于每个整数 ii1iN1 \le i \le N)和整数 jj1jCi1 \le j \le C_i),1Ai,jN1 \le A_{i,j} \le N
  • 对于每个整数 ii1iN1 \le i \le N),CiC_i 个整数 Ai,1,Ai,2,,Ai,CiA_{i,1},A_{i,2},\cdots,A_{i,C_i} 两两不同。

子任务

  1. 66 分)对于每个整数 ii1iN1 \le i \le N),Ci=1C_i=1
  2. 1111 分)如果存在一种顺序能让所有学生都恰好拿走一份零食,那么学生按 1,2,,N1,2,\cdots,N 的编号顺序进入房间也满足条件。
  3. 88 分)N5N \le 5
  4. 1212 分)N18N \le 18
  5. 1818 分)N300N \le 300
  6. 2020 分)N5000N \le 5\,000
  7. 2525 分)没有额外限制。