#abc302f. [abc302_f]Merge Set

[abc302_f]Merge Set

题目描述

在一个黑板上,有 NN 个集合 S1,S2,dots,SNS_1,S_2,\\dots,S_N,其中包含了介于 11MM 之间的整数。这里,$S_i = \\lbrace S_{i,1},S_{i,2},\\dots,S_{i,A_i} \\rbrace$。

你可以任意多次(可能为零次)执行以下操作:

  • 选择两个具有至少一个公共元素的集合 XXYY。将它们从黑板上擦除,并在黑板上写下 XcupYX\\cup Y

这里,XcupYX\\cup Y 表示由 XXYY 中至少一个集合包含的元素组成的集合。

判断是否能够得到一个包含 11MM 的集合。如果可能,找出获得它所需的最小操作数。

约束条件

  • 1leNle2times1051 \\le N \\le 2 \\times 10^5
  • 2leMle2times1052 \\le M \\le 2 \\times 10^5
  • 1lesumi=1NAile5times1051 \\le \\sum_{i=1}^{N} A_i \\le 5 \\times 10^5
  • $1 \\le S_{i,j} \\le M(1 \\le i \\le N,1 \\le j \\le A_i)$
  • Si,jneqSi,k(1lej<kleAi)S_{i,j} \\neq S_{i,k}(1 \\le j < k \\le A_i)
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入中给出:

NN MM A1A_1 S1,1S_{1,1} S1,2S_{1,2} dots\\dots S1,A1S_{1,A_1} A2A_2 S2,1S_{2,1} S2,2S_{2,2} dots\\dots S2,A2S_{2,A_2} vdots\\vdots ANA_N SN,1S_{N,1} SN,2S_{N,2} dots\\dots SN,ANS_{N,A_N}

输出

如果可以获得一个包含 11MM 的集合,则打印出获得它所需的最小操作数;如果不可能,则打印 -1


示例输入 1

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

示例输出 1

2

首先,选择并删除 lbrace1,2rbrace\\lbrace 1,2 \\rbracelbrace2,3rbrace\\lbrace 2,3 \\rbrace,获得 lbrace1,2,3rbrace\\lbrace 1,2,3 \\rbrace

然后,选择并删除 lbrace1,2,3rbrace\\lbrace 1,2,3 \\rbracelbrace3,4,5rbrace\\lbrace 3,4,5 \\rbrace,获得 lbrace1,2,3,4,5rbrace\\lbrace 1,2,3,4,5 \\rbrace

因此,可以用两次操作来获得一个包含 11MM 的集合。由于只执行一次操作无法达到目标,答案是 22


示例输入 2

1 2
2
1 2

示例输出 2

0

S1S_1 已经包含 11MM,所以获得它所需的最小操作数为 00


示例输入 3

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

示例输出 3

-1

示例输入 4

4 8
3
1 3 5
2
1 2
3
2 4 7
4
4 6 7 8

示例输出 4

2