n,m,i,j,y,t,ans:longint;
p:array [0..1000] of longint;
v:array [0..1000] of boolean;
a:array [0..1000,0..1000] of boolean;
function find(x:longint):boolean;
var
i:longint;
begin
for i:=1 to n do
if (not a[x,i])and(not v[i]) then
begin
v[i]:=true;
if (p[i]=0)or(find(p[i])) then
begin
p[i]:=x;
exit(true);
end;
end;
exit(false);
end;
begin
readln(n);
for i:=1 to n do
begin
read(t);
for j:=1 to t do
begin
read(y);
a[i,y]:=true;
end;
end;
ans:=0;
for i:=1 to n do
begin
fillchar(v,sizeof(v),false);
if find(i) then inc(ans);
end;
writeln(ans);
end.