#lg3026. 【并查集】学习语言[USACO11OPEN] Learning Languages S

【并查集】学习语言[USACO11OPEN] Learning Languages S

P3026 [USACO11OPEN] Learning Languages S

题目描述

有 NN 只奶牛(标号为 1…N1 \dots N ),

有 MM 种牛语(标号为 1…M1 \dots M )。

第 ii 只奶牛会说 KiK_i 种牛语,分别为 Li,1,Li,2,…,Li,Ki(1≤Li,j≤M)L_{i,1},L_{i,2},…,L_{i,K_i}(1 \le L_{i,j} \le M)

两只奶牛可以互相交流:可以是他们有一门共同语言,或者他们可以间接通过别的奶牛翻译进行交流。

要使所有奶牛都能相互交流至少需要多少头牛学会一种新的语言。

输入格式

第一行两个整数 N M(2≤N≤104,1≤M≤3×104)N \ M(2 \le N \le 10^4,1 \le M \le 3 \times 10^4)

下来 NN 行,每行第一个整数为 Ki(1≤Ki≤M,∑Ki≤106)K_i(1 \le K_i \le M,\sum K_i \le 10^6) ,然后是 KiK_i 个整数 Li,1,Li,2,…,Li,Ki(1≤Li,j≤M)L_{i,1},L_{i,2},…,L_{i,K_i}(1 \le L_{i,j} \le M)

输出格式

一行一个整数,表示至少需要多少头牛学会一种新的语言。

输入输出样例 #1

输入 #1

3 3 
2 3 2 
1 2 
1 1

输出 #1

1