#include <cstdio>
#include <algorithm>
#include <vector>
#include <iostream>
#include <sstream>
#include <utility>
#include <string>
#include <cstring>
#include <set>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
using namespace std;
int t;
vector <vector <int> > mat;
queue <int> qu;
int n,t1,t2;
vector <int> vis,vis2,vis3;
int bl[2];
int get_max();
bool check(int);
void visit(int);
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
mat.clear(); mat.resize(n);
vis.resize(n); vis2.resize(n);
for(int i=0;i<n;i++)
{
scanf("%d",&t1);
vis[i]=-1;
for(int j=0;j<t1;j++)
{
scanf("%d",&t2);
if(t2>n) continue;
t2--;
mat[i].push_back(t2);
mat[t2].push_back(i);
}
}
int res=0;
for(int i=0;i<n;i++)
{
if(vis[i]!=-1) continue;
bl[0]=1; bl[1]=0;
while(!qu.empty()) qu.pop();
qu.push(i);
vis[i]=0;
int t3=get_max();
if(check(i)) res+=t3;
}
printf("%d\n",res);
}
return 0;
}
int get_max()
{
while(!qu.empty())
{
t1=qu.front(); qu.pop();
t2=vis[t1];
if(t2) t2=0; else t2=1;
for(int j=0;j<mat[t1].size();j++)
{
if(vis[mat[t1][j]]==-1)
{
vis[mat[t1][j]]=t2;
bl[t2]++;
qu.push(mat[t1][j]);
}
}
}
return (bl[0]>bl[1])?bl[0]:bl[1];
}
bool check(int x)
{
for(int i=0;i<n;i++) vis2[i]=0;
vis3.clear();
visit(x);
for(int i=0;i<vis3.size();i++)
{
for(int j=0;j<mat[i].size();j++)
{
if(vis[i]==vis[mat[i][j]]) return false;
}
}
return true;
}
void visit(int x)
{
vis2[x]=1;
vis3.push_back(x);
for(int i=0;i<mat[x].size();i++)
{
if(!vis2[mat[x][i]]) visit(mat[x][i]);
}
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHV0aWxpdHk+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxjc3RyaW5nPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8bWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgdDsKdmVjdG9yIDx2ZWN0b3IgPGludD4gPiBtYXQ7CnF1ZXVlIDxpbnQ+IHF1OwppbnQgbix0MSx0MjsKdmVjdG9yIDxpbnQ+IHZpcyx2aXMyLHZpczM7CmludCBibFsyXTsKaW50IGdldF9tYXgoKTsKYm9vbCBjaGVjayhpbnQpOwp2b2lkIHZpc2l0KGludCk7CmludCBtYWluKCkKewoKCXNjYW5mKCIlZCIsJnQpOwoKCXdoaWxlKHQtLSkKCXsKCQlzY2FuZigiJWQiLCZuKTsKCQltYXQuY2xlYXIoKTsgbWF0LnJlc2l6ZShuKTsKCQl2aXMucmVzaXplKG4pOyB2aXMyLnJlc2l6ZShuKTsKCQlmb3IoaW50IGk9MDtpPG47aSsrKQoJCXsKCQkJc2NhbmYoIiVkIiwmdDEpOwoJCQl2aXNbaV09LTE7CgkJCWZvcihpbnQgaj0wO2o8dDE7aisrKSAKCQkJewoJCQkJc2NhbmYoIiVkIiwmdDIpOyAKCQkJCWlmKHQyPm4pIGNvbnRpbnVlOwoJCQkJdDItLTsKCQkJCW1hdFtpXS5wdXNoX2JhY2sodDIpOwoJCQkJbWF0W3QyXS5wdXNoX2JhY2soaSk7CgkJCX0KCQl9CgkJaW50IHJlcz0wOwoJCWZvcihpbnQgaT0wO2k8bjtpKyspCgkJewoJCQlpZih2aXNbaV0hPS0xKSBjb250aW51ZTsKCgkJCWJsWzBdPTE7IGJsWzFdPTA7CgkJCXdoaWxlKCFxdS5lbXB0eSgpKSBxdS5wb3AoKTsKCQkJcXUucHVzaChpKTsKCQkJdmlzW2ldPTA7CgkJCWludCB0Mz1nZXRfbWF4KCk7CgkJCWlmKGNoZWNrKGkpKSByZXMrPXQzOwoJCX0KCQlwcmludGYoIiVkXG4iLHJlcyk7Cgl9CglyZXR1cm4gMDsKfQoKaW50IGdldF9tYXgoKQp7Cgl3aGlsZSghcXUuZW1wdHkoKSkKCXsKCQl0MT1xdS5mcm9udCgpOyBxdS5wb3AoKTsKCQl0Mj12aXNbdDFdOwoJCWlmKHQyKSB0Mj0wOyBlbHNlIHQyPTE7CgkJZm9yKGludCBqPTA7ajxtYXRbdDFdLnNpemUoKTtqKyspCgkJewoJCQlpZih2aXNbbWF0W3QxXVtqXV09PS0xKQoJCQl7CgkJCQl2aXNbbWF0W3QxXVtqXV09dDI7CgkJCQlibFt0Ml0rKzsKCQkJCXF1LnB1c2gobWF0W3QxXVtqXSk7CgkJCX0KCQl9Cgl9CglyZXR1cm4gKGJsWzBdPmJsWzFdKT9ibFswXTpibFsxXTsKfQoKYm9vbCBjaGVjayhpbnQgeCkKewoJZm9yKGludCBpPTA7aTxuO2krKykgdmlzMltpXT0wOwoJdmlzMy5jbGVhcigpOwoJdmlzaXQoeCk7Cglmb3IoaW50IGk9MDtpPHZpczMuc2l6ZSgpO2krKykKCXsKCQlmb3IoaW50IGo9MDtqPG1hdFtpXS5zaXplKCk7aisrKQoJCXsKCQkJaWYodmlzW2ldPT12aXNbbWF0W2ldW2pdXSkgcmV0dXJuIGZhbHNlOwoJCX0KCX0KCXJldHVybiB0cnVlOwp9Cgp2b2lkIHZpc2l0KGludCB4KQp7Cgl2aXMyW3hdPTE7Cgl2aXMzLnB1c2hfYmFjayh4KTsKCWZvcihpbnQgaT0wO2k8bWF0W3hdLnNpemUoKTtpKyspCgl7CgkJaWYoIXZpczJbbWF0W3hdW2ldXSkgdmlzaXQobWF0W3hdW2ldKTsKCX0KfQ==
ICAgIDUKCiAgICA3CiAgICAyIDIgMwogICAgMSAxCiAgICAzIDEgNyA0CiAgICAyIDcgMwogICAgMAogICAgMAogICAgMiAzIDQKCgogICAgNwogICAgMiAyIDMKICAgIDAKICAgIDAKICAgIDIgNSA3CiAgICAwCiAgICAxIDcKICAgIDAKCiAgICAxMAogICAgMiAyIDMKICAgIDAKICAgIDAKICAgIDIgNSA3CiAgICAwCiAgICAxIDcKICAgIDAKICAgIDAKICAgIDAKICAgIDIgOCA5CgogICAgMjAKICAgIDIgMiAzCiAgICAyIDUgMwogICAgMSA5CiAgICAwCiAgICAxIDQKICAgIDMgOSA3IDgKICAgIDEgOAogICAgMAogICAgMSAxMAogICAgMAogICAgMiAxMyAxMgogICAgMiAxMyAxNQogICAgMSAxNwogICAgMAogICAgMAogICAgMAogICAgMAogICAgMiAyMCAxOQogICAgMSAyMAogICAgMAoKCiAgICAxMAogICAgMiAyIDMKICAgIDIgNSAzCiAgICAxIDkKICAgIDAKICAgIDEgNAogICAgMyA5IDcgOAogICAgMSA4CiAgICAwCiAgICAxIDEwCiAgICAwCg==
5
7
2 2 3
1 1
3 1 7 4
2 7 3
0
0
2 3 4
7
2 2 3
0
0
2 5 7
0
1 7
0
10
2 2 3
0
0
2 5 7
0
1 7
0
0
0
2 8 9
20
2 2 3
2 5 3
1 9
0
1 4
3 9 7 8
1 8
0
1 10
0
2 13 12
2 13 15
1 17
0
0
0
0
2 20 19
1 20
0
10
2 2 3
2 5 3
1 9
0
1 4
3 9 7 8
1 8
0
1 10
0