你需要负责维护一个铁路网络。该网络由 $N$ 个车站和 $L$ 条铁路线组成。每条铁路线双向服务于一个固定的车站列表(列车在列表的第一个和最后一个车站折返)。在车站内可以在不同线路之间进行换乘,这意味着如果存在一个铁路线列表,使得第一条线路服务于车站 $a$,最后一条线路服务于车站 $b$,且列表中任意相邻的两条铁路线都至少有一个共同服务的车站,那么网络中从车站 $a$ 到车站 $b$ 的行程就是可能的。
维护铁路最简单的方法是逐一关闭整条线路。然而,某些铁路线可能是必要的。如果移除某条铁路线会导致至少一对车站之间的行程变得不可行,那么这条铁路线就是必要的。
给定现有铁路线的列表,计算其中有多少条是必要的。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含两个整数 $N$ 和 $L$:网络中的车站数和铁路线数。随后是 $L$ 组数据,每组数据包含 2 行。第 $i$ 组数据的第一行包含一个整数 $K_i$,表示第 $i$ 条铁路线服务的车站数量。第 $i$ 组数据的第二行包含 $K_i$ 个整数 $S_{i,1}, S_{i,2}, \dots, S_{i,K_i}$,表示第 $i$ 条铁路线服务的车站。
输出格式
对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是必要的铁路线数量。
数据范围
$1 \le T \le 100$。 $2 \le K_i \le N$。 $1 \le S_{i,j} \le N$。 $S_{i,j} \neq S_{i,j'}$,对于所有 $i, j, j'$ 且 $j \neq j'$(每条铁路线最多服务一个车站一次)。 当没有铁路线关闭时,根据上述定义,所有车站对之间的行程都是可能的。
测试集 1 $2 \le N \le 100$。 $1 \le L \le 100$。 $K_1 + K_2 + \dots + K_L \le 200$。
测试集 2 $2 \le N \le 10^5$。 $1 \le L \le 10^5$。 $K_1 + K_2 + \dots + K_L \le 2 \times 10^5$。
样例
样例输入 1
4 4 3 3 1 2 3 2 1 4 3 4 1 3 4 4 2 1 2 2 3 4 2 3 2 2 4 1 4 3 2 1 2 2 3 4 2 3 2 4 3 2 1 2 2 3 4 4 4 1 2 3
样例输出 1
Case #1: 1 Case #2: 0 Case #3: 3 Case #4: 1
说明
在样例 1 中,第一条铁路线是必要的,因为它是唯一服务于车站 2 的线路。由于关闭任何其他线路都不会导致至少一对车站之间的行程变得不可行,因此它们不是必要的。
在样例 2 中,没有线路是必要的。
样例 3 与样例 2 类似,但缺少了最后一条铁路线。这使得所有剩余的铁路线都变得必要。
在样例 4 中,最后一条铁路线是必要的,因为没有它就无法从车站 1 前往车站 4。与样例 1 一样,由于这条铁路线已经连接了所有车站,因此没有其他线路是必要的。