#include<iostream> #include<algorithm> #include<vector> #define MAXN 20000+10 using namespace std; vector<int> g[MAXN]; int n,v[MAXN],in[MAXN],out[MAXN]; int dfs(int cnt) { if(out[cnt]==0) return cnt; vector<int> ss; for(int i=0;i<out[cnt];i++) ss.push_back(dfs(g[cnt][i])); sort(ss.begin(),ss.end()); return ss[(out[cnt]+1)/2-1]; } int main() { int a; while(scanf("%d",&n)==1) { for(int i=1;i<=n;i++) g[i].clear(); memset(in,0,sizeof(in)); for(int i=1;i<=n;i++) { scanf("%d",&out[i]); for(int j=0;j<out[i];j++) { scanf("%d",&a); g[i].push_back(a); in[a]++; } } int root; for(int i=1;i<=n;i++) if(in[i]==0) { root=i; break; } printf("%d\n",dfs(root)); } return 0; }