#253. 覆盖

覆盖

题目描述

MM 个集合,每个集合由 11NN 之间的若干整数构成,依次记为 S1,S2,,SMS_1, S_2, \dots, S_M

集合 SiS_i 包含 CiC_i 个整数,分别为 ai,1,ai,2,,ai,Cia_{i,1}, a_{i,2}, \dots, a_{i,C_i}

从这 MM 个集合中选择至少一个集合的方法共有 2M12^M-1 种。

在这些选择方法中,满足以下条件的方法有多少种?

  • 对于每个满足 1xN1 \leq x \leq N 的整数 xx,所选的集合中至少有一个集合包含 xx

输入格式

第一行输入 N,MN,M 分别代表数字个数与集合的个数。

接下来 MM 行,每行首先输入一个整数 CiC_i,代表第 ii 个集合的大小。

  • 接下来紧接着继续输入 CiC_i 个空格隔开的数字分别为 ai,1a_{i,1} ai,2a_{i,2} \dots ai,Cia_{i,C_i} 对应当前集合的所有元素。

输出格式

输出满足题目条件的集合选择方法的数量。

3 3
2
1 2
2
1 3
1
2
3
4 2
2
1 2
2
1 3
0
6 6
3
2 3 6
3
2 4 6
2
3 6
3
1 5 6
3
1 3 6
2
1 4
18

提示

数据范围

  • 1N101 \leq N \leq 10
  • 1M101 \leq M \leq 10
  • 1CiN1 \leq C_i \leq N
  • $1 \leq a_{i,1} < a_{i,2} < \dots < a_{i,C_i} \leq N$
  • 所有输入的值均为整数

样例 1 解释

输入给出的集合分别为 S1={1,2}S_1 = \{1, 2\}S2={1,3}S_2 = \{1, 3\}S3={2}S_3 = \{2\}。满足题目条件的集合选择方法有以下 33 种:

  • 选择 S1,S2S_1, S_2
  • 选择 S1,S2,S3S_1, S_2, S_3
  • 选择 S2,S3S_2, S_3