#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<vector<int> >a(500005);
int tong[500005],x,y,b[500005];
queue<int>q;
bool bfs(){
for(int i=0;i<=505;i++){
if(tong[i]==0&&b[i]==1){
q.push(i);
}
}
int ans=0;
while(!q.empty()){
int k=q.front();
q.pop();
ans++;
for(int i=0;i<a[k].size();i++){
if(b[a[k][i]]>=1){
tong[a[k][i]]--;
if(tong[a[k][i]]==0){
q.push(a[k][i]);
}
}
}
}
if(ans==n){
cout<<"YES";
}
else cout<<n-ans;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>x>>m;
b[x]=1;
for(int j=1;j<=m;j++){
cin>>y;
a[x].push_back(y);
tong[y]++;
}
}
bfs();
return 0;
}
十个点全部RE 求问题