#include <bits/stdc++.h> using namespace std; int n,k; vector<int> X; vector<int> g[5005]; int c[5005]; void process(string s){ istringstream input(s); int id, x; input>>id; while(input>>x){ g[id].push_back(x); } } int cnt; int dfs(int x){ if(c[x]) return c[x]; c[x]++; for(int i=0; i<g[x].size(); i++) c[x]+=dfs(g[x][i]); return c[x]; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin>>n>>k; for(int i=0; i<k; i++){ int x; cin>>x; X.push_back(x); } string s; getline(cin,s); int best=0, res; for(int i=0; i<n; i++){ getline(cin, s); process(s); } memset(c,0,sizeof cnt); res=1000000; for(int i=0; i<X.size(); i++){ dfs(X[i]); if((c[X[i]]>best)||(c[X[i]]==best && i<res)) best=c[X[i]], res=X[i]; } cout<<res; return 0; }