#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int mat[1010][1010];
int link[1010];
int vis[1010];
int n,m;
bool find(int u)
{
int v;
for(v=0;v<n;v++)
if(mat[u][v]&&!vis[v])
{
vis[v]=true;
if(link[v]==-1||find(link[v]))
{
link[v]=u;
return true;
}
}
return false;
}
int pipei()
{
int res=0;
int u;
memset(link,-1,sizeof(link));
for(u=0;u<n;u++)
{
memset(vis,0,sizeof(vis));
if(find(u)) res++;
}
return res;
}
int main()
{
int i,j,k;
int temp;
int from ,to;
while(scanf("%d",&n)!=EOF)
{
memset(mat,0,sizeof(mat));
for(i=0;i<n;i++)
{
scanf("%d: (%d)",&from,&m);
while(m--)
{
scanf("%d",&to);
//printf("%d..\n",to);
mat[from][to]=1;
}
}
int ans=pipei();
printf("%d\n",n-ans/2);
}
return 0;
}