#include<iostream>
#include<queue>
#include<cstring>
#include<vector>
#define N 201
#include<cstdio>
using namespace std;
vector<long long>v[N];
long long m,sum,sum1;
void BIPARTITE();
long long check=0;
int main()
{
long long n,t,i,j,x,y,k;
scanf("%lld",&t);
for(i=1;i<=t;i++)
{
scanf("%lld",&m);
for(j=1;j<=m;j++)
{
scanf("%lld",&x);
if(x!=0)
{
for(k=1;k<=x;k++)
{
scanf("%lld",&y);
v[j].push_back(y);
v[y].push_back(j);
}
}
}
sum=0;
sum1=0;
check=0;
BIPARTITE();
if(check==0)
printf("%lld\n",sum);
else
printf("%lld\n",sum1);
for(j=1;j<=N;j++)
v[j].clear();
}
}
void BIPARTITE()
{
long long taken[N];
long long color[N];
queue<long long>q;
memset(taken,0,sizeof(taken));
memset(color,0,sizeof(color));
long long c_0,c_1;
long long i,x,y,j;
for(i=1;i<=m;i++)
{
if(taken[i]!=1)
{
q.push(i);
taken[i]=1;
c_0=1,c_1=0;
while(!q.empty())
{
x=q.front();
q.pop();
for(j=0;j<v[x].size();j++)
{
y=v[x][j];
if(taken[y]!=1)
{
taken[y]=1;
if(color[x]==0)
{
color[y]=1;
c_1=c_1+1;
}
else if(color[x]==1)
{
color[y]=0;
c_0=c_0+1;
}
q.push(y);
}
if(taken[y]==1)
{
if(color[y]==color[x])
check=1;
}
}
}
if(c_0>c_1)
sum=sum+c_0;
else
sum=sum+c_1;
if(v[x].size()==0)
sum1=sum1+1;
}
}
}
ICAgI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTx2ZWN0b3I+CiNkZWZpbmUgTiAyMDEKI2luY2x1ZGU8Y3N0ZGlvPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2ZWN0b3I8bG9uZyBsb25nPnZbTl07CmxvbmcgbG9uZyBtLHN1bSxzdW0xOwp2b2lkIEJJUEFSVElURSgpOwpsb25nIGxvbmcgY2hlY2s9MDsKaW50IG1haW4oKQp7CgoJbG9uZyBsb25nIG4sdCxpLGoseCx5LGs7CglzY2FuZigiJWxsZCIsJnQpOwoJZm9yKGk9MTtpPD10O2krKykKCXsKCQlzY2FuZigiJWxsZCIsJm0pOwoJCWZvcihqPTE7ajw9bTtqKyspCgkJewoJCQlzY2FuZigiJWxsZCIsJngpOwoJCQlpZih4IT0wKQoJCQl7CgkJCQlmb3Ioaz0xO2s8PXg7aysrKQoJCQkJewoJCQkJc2NhbmYoIiVsbGQiLCZ5KTsKCQkJCXZbal0ucHVzaF9iYWNrKHkpOwoJCQkJdlt5XS5wdXNoX2JhY2soaik7CgkJCQl9CgkJCX0KCQl9CgkJc3VtPTA7CgkJc3VtMT0wOwoJCWNoZWNrPTA7CgkJQklQQVJUSVRFKCk7CgkJaWYoY2hlY2s9PTApCgkJcHJpbnRmKCIlbGxkXG4iLHN1bSk7CgkJZWxzZQoJCQlwcmludGYoIiVsbGRcbiIsc3VtMSk7CgkJZm9yKGo9MTtqPD1OO2orKykKCQkJdltqXS5jbGVhcigpOwoJfQoKCgp9CnZvaWQgQklQQVJUSVRFKCkKewoJbG9uZyBsb25nIHRha2VuW05dOwoJbG9uZyBsb25nICBjb2xvcltOXTsKCXF1ZXVlPGxvbmcgbG9uZz5xOwoJbWVtc2V0KHRha2VuLDAsc2l6ZW9mKHRha2VuKSk7CgltZW1zZXQoY29sb3IsMCxzaXplb2YoY29sb3IpKTsKCWxvbmcgbG9uZyBjXzAsY18xOwoJbG9uZyBsb25nIGkseCx5LGo7Cglmb3IoaT0xO2k8PW07aSsrKQoJewoJCWlmKHRha2VuW2ldIT0xKQoJCXsKCQkJcS5wdXNoKGkpOwoJCQl0YWtlbltpXT0xOwoJCQljXzA9MSxjXzE9MDsKCQkJd2hpbGUoIXEuZW1wdHkoKSkKCQkJewoJCQkJeD1xLmZyb250KCk7CgkJCQlxLnBvcCgpOwoJCQkJZm9yKGo9MDtqPHZbeF0uc2l6ZSgpO2orKykKCQkJCXsKCQkJCQl5PXZbeF1bal07CgkJCQkJaWYodGFrZW5beV0hPTEpCgkJCQkJewoJCQkJCQl0YWtlblt5XT0xOwoJCQkJCQlpZihjb2xvclt4XT09MCkKCQkJCQkJewoJCQkJCQkJY29sb3JbeV09MTsKCQkJCQkJCWNfMT1jXzErMTsKCQkJCQkJfQoJCQkJCQllbHNlIGlmKGNvbG9yW3hdPT0xKQoJCQkJCQl7CgkJCQkJCQljb2xvclt5XT0wOwoJCQkJCQkJY18wPWNfMCsxOwoJCQkJCQl9CgkJCQkJCXEucHVzaCh5KTsKCQkJCQl9CgkJCQkJaWYodGFrZW5beV09PTEpCgkJCQkJewoJCQkJCQlpZihjb2xvclt5XT09Y29sb3JbeF0pCgkJCQkJCQljaGVjaz0xOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQkgICAgICAgICAgICAKCQkJIGlmKGNfMD5jXzEpCgkJCQkgc3VtPXN1bStjXzA7CgkJCSBlbHNlIAoJCQkJIHN1bT1zdW0rY18xOwoJCQkgaWYodlt4XS5zaXplKCk9PTApCgkJCQkgc3VtMT1zdW0xKzE7CgoJCX0KCX0KfQo=