#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
int n,tx,tm,ty,cnt,vis[501];
vector <int> vec[501];
bool ok(int x){
if(vis[x]==0) return false;
if(vec[x].size()==0) return true;
bool flag=true;
for(int i=0;i<vec[x].size();i++){
vis[i]=1;
flag=!ok(vec[x][i])&&flag;
cout << flag << endl;
vis[i]=0;
}
return flag;
}
int main(){
cin >> n;
for(int i=0;i<n;i++){
cin >> tx >> tm;
for(int j=0;j<tm;j++){
cin >> ty;
vec[tx].push_back(ty);
}
}
for(int i=0;i<n;i++){
memset(vis,0,101);
vis[i]=1;
bool tf=ok(i);
vis[i]=0;
if(!tf) cnt++;
}
if(cnt==0) cout << "YES";
else cout << cnt;
return 0;
}
4TLE+5WA+1AC