#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
bool a[500][500]={false},s[500]={false};
int n,low[500]={0},dfn[500]={0},sta[500009]={0},top,ans,id;
void dfs(int u)
{
dfn[u]=low[u]=++id;
sta[++top]=u;
s[u]=true;
for (int i=1;i<=n;i++) if (a[u][i])
{
if (dfn[i]==0)
{
dfs(i);
low[u]=min(low[u],low[i]);
}else if (s[i]==true)low[u]=min(low[u],low[i]);
}
if (low[u]==dfn[u])
{
ans++;
while (sta[top+1]!=u) s[sta[top]]=false,top--;
}
}
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
int x;
while (scanf("%d",&x),x!=0) a[i][x]=true;
}
for (int i=1;i<=n;i++) if (dfn[i]==0) dfs(i);
printf("%d",ans);
return 0;
}