问题描述

fzk非常喜欢养宠物,比如他现在就养了2头奶牛,3只小熊,4个猩猩,5头大象,还有一个daizi。fzk
把他的宠物关在一些笼子里,例如,fzk当前的分配是:

笼子1: 奶牛,daizi
笼子2: 奶牛
笼子3: 猩猩,大象
笼子4: 小熊,猩猩
这样总共需要4个笼子。为了节省资金,fzk想用尽可能少的笼子来装下所有宠物。他的办法是在当前的
分配下,合并一些笼子。假设每个笼子都足够大,可以装下任意多的宠物,而两个笼子如果装有相同的
一种或多种宠物,就可以合并。现在给出fzk当前的分配,你能否帮助fzk算出按照他的方法合并后,总
共只需要几个笼子? 比如对于上面的分配,可以合并为:

笼子1:奶牛,daizi
笼子2:猩猩,小熊,大象
总共需要2个笼子。

问题输入

首先一个整数t表示测试数据组数(1=<t<=10)。对每组数据,第一行是一个整数k(k>0),表示当前
分配下总共的笼子数。在接下来的k行中,每行描述一个笼子中关的宠物。其中第i行的结构是:Ni 
name1 name2 name3 … nameNi。其中Ni(Ni>0)是该笼子中的宠物的种类数,name1,…,nameNi是这些
宠物的种类名称(他们互不相同)。所有的name都是由小写字母组成的字符串,长度不超过10位;所有
的Ni之和不超过10000,不同的宠物种类数不超过1000。

问题输出

对每组测试数据,输出一个整数,表示笼子合并之后fzk可以使用的最少的笼子数。

样例输入

1
4
2 nainiu daizi
1 nainiu
2 xingxing daxiang
2 xiaoxiong xingxing

样例输出

2

From:  erwen