题目传送门
#include<bits/stdc++.h>
#define maxn 1505
using namespace std;
int n,cnt=0,h[maxn],f[maxn][2];
struct edge {
int nxt,to;
} e[maxn*maxn];
void add(int u, int v) {
cnt++;
e[cnt].to = v;
e[cnt].nxt = h[u];
h[u] = cnt;
}
int dp(int u,int fa) {
f[u][1]=1;
f[u][0]=0;
for(int i=h[u]; i; i=e[i].nxt) {
int v=e[i].to;
if(v!=fa) {
dp(v,u);
f[u][0]+=f[v][1];
f[u][1]+=min(f[v][0],f[v][1]);
}
}
}
int main() {
int k,u,v;
cin>>n;
for(int i=1; i<=n; i++) {
cin>>u>>k;
for(int j=1; j<=k; j++) {
cin>>v;
add(u,v);
add(v,u);
}
}
dp(1,0);
int ans=min(f[1][0],f[1][1]);
cout<<ans;
return 0;
}