#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;
}