/***
* 以资源为列,用户为行,统计资源列有多少个不同值,去掉空值,即为答案。
*/
import java.util.*;
import java.io.*;
public class Solution {
public static void main(String[] argv) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(in.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
BitSet[] a = new BitSet[n];
for (int i = 0; i < a.length; ++i) {
a[i] = new BitSet(m);
}
for (int i = 0; i < m; ++i) {
st = new StringTokenizer(in.readLine());
int k = Integer.parseInt(st.nextToken());
for (int j = 0; j < k; ++j) {
int t = Integer.parseInt(st.nextToken());
a[t-1].set(i);
}
}
HashSet<BitSet> h=new HashSet<BitSet>();
h.add(new BitSet(m) );
for (int i=0; i<n; ++i){
h.add(a[i]);
}
System.out.println(h.size()-1);
}
}
sgu 318
最新推荐文章于 2021-03-10 18:41:58 发布