#CF2146B. 合并集合

合并集合

B. 合并集合 每次测试时间限制:1 秒 每次测试内存限制:256 兆字节

给定 nn 个集合 S1,S2,,SnS_1, S_2, \dots, S_n,每个集合中的元素都是 11mm 之间的整数。

你需要选择其中的某些集合(可以一个都不选,也可以全部选),使得 11mm 之间的每个整数都至少出现在一个被选中的集合中。

你需要判断是否存在至少 33 种不同的选择集合的方式。

输入格式 每个测试包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

接下来是每个测试用例的描述:

第一行包含两个整数 nnmm2n51042 \le n \le 5 \cdot 10^41m1051 \le m \le 10^5)—— 集合的数量以及集合中整数的上限。

接下来 nn 行,第 ii 行首先包含一个整数 lil_i1lim1 \le l_i \le m)—— 集合 SiS_i 的大小。

然后在该行中紧随其后有 lil_i 个整数 Si,1,Si,2,,Si,liS_{i,1}, S_{i,2}, \dots, S_{i,l_i}1Si,1<Si,2<<Si,lim1 \le S_{i,1} < S_{i,2} < \dots < S_{i,l_i} \le m)—— 集合 SiS_i 中的元素。

L=i=1nliL = \sum_{i=1}^{n} l_i。数据保证:

  • 所有测试用例的 nn 之和不超过 51045 \cdot 10^4
  • 所有测试用例的 mm 之和不超过 10510^5
  • 所有测试用例的 LL 之和不超过 21052 \cdot 10^5

输出格式 对于每个测试用例,如果存在至少 33 种选择集合的方式,输出 "YES",否则输出 "NO"

你可以以任何大小写输出答案。例如,"yEs""yes""Yes""YES" 都会被识别为肯定响应。

示例 输入

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

输出

YES
NO
NO
YES
YES
NO

说明 在第一个测试用例中,有 535 \ge 3 种可能的选择集合的方式:

· 只选 S1S_1 —— 1122 都包含在 S1S_1 中; · 选 S1S_1S2S_2 —— 11 包含在 S1S_1S2S_2 中,22 包含在 S1S_1 中; · 选 S1S_1S3S_3 —— 11 包含在 S1S_1 中,22 包含在 S1S_1S3S_3 中; · 选 S2S_2S3S_3 —— 11 包含在 S2S_2 中,22 包含在 S3S_3 中; · 选 S1S_1S2S_2S3S_3 —— 11 包含在 S1S_1S2S_2 中,22 包含在 S1S_1S3S_3 中。

注意,只选 S2S_2 是无效的,因为 22 没有包含在 S2S_2 中。

在第二个测试用例中,唯一的方式是选择所有集合。

在第三个测试用例中,55 没有出现在任何集合中,因此不存在选择集合的方式。

在第四个测试用例中,选择任何非空集合集合都是有效的,所以方式的数量为 251=3132^5 - 1 = 31 \ge 3