#include<bits/stdc++.h>
using namespace std;
#define N 10000000
struct node{
int s;
vector<int> v;
int len;
}a[N];
int v[N];
int main(){
int n;
cin>>n;
int i,j,k;
for(i=1;i<=n;i++){
int name;
cin>>a[i].s;
int y;
cin>>y;
for(j=1;j<=y;j++){
int x;
cin>>x;
a[x].len++;
a[j].v.push_back(x);
}
}
while(1){
bool f=0;
//cout<<1<<endl;
for(i=1;i<=n;i++){
if(a[i].len==0&&v[i]==0){
v[i]=1;
for(j=0;j<a[i].v.size();j++){
a[a[i].v[j]].len--;
}
f=1;
//cout<<i<<endl;
}
}
int ans=0;
if(f==0){
for(i=1;i<=n;i++){
if(v[i]==0)ans++;
}
if(ans==0){
cout<<"YES\n";
return 0;
}
else{
cout<<ans<<endl;
return 0;
}
}
}
}
有哪位大佬可以帮忙看一看吗