#include <stdio.h>
#include <stdlib.h>

#define MAXN 5000

int influ[MAXN];
unsigned short a[MAXN][MAXN]={{0}};
unsigned short nr[MAXN]={0}, X[MAXN], n, k;

int eliminate_space()
{
    char ct;

    while ((ct=getc(stdin))==' ');
    if ((ct=='\n')||(ct==EOF))
        return 1;
    else
        ungetc(ct, stdin);

    return 0;
}

void read_input()
{
    unsigned short i, idx, t;
    int el; //end of line

    scanf("%hu%hu", &n, &k);
    for (i=0; i!=n; i++)
        influ[i]=-1;
    for (i=0; i!=k; i++)
    {
        scanf("%hu", &X[i]);
        X[i]--; //trecem in coordonate C
    }
    for (i=0; i!=n; i++)
    {
        scanf("%hu", &idx);
        idx--;
        el=0;
        while (!el)
        {
            if (eliminate_space())
                el=1; //iseim din ciclu
            if (!el)
            {
                scanf("%hu", &t);
                t--;
                a[idx][nr[idx]]=t;
                nr[idx]++;
            }
        }
    }
}

void in_deepth(unsigned short idx)
{
    unsigned short i;

    influ[idx]=0;
    for (i=0; i!=nr[idx]; i++)
    {
        if (influ[a[idx][i]]==-1)
            in_deepth(a[idx][i]);
        influ[idx]+=influ[a[idx][i]]+1; //putem influenta si pe el
    }
}

void max_influ()
{
    unsigned short i, idx, maxinf=0, maxidx=0;

    for (i=0; i!=k; i++)
    {
        idx=X[i];
        if (influ[idx]==-1)
            in_deepth(idx);
        if (influ[idx]>maxinf)
        {
            maxinf=influ[idx];
            maxidx=idx;
        }
    }
    printf("%hu", maxidx+1);
}

int main()
{
    /*FILE * fi, *fo, *sti=stdin, *sto=stdout;

    fi=fopen("input.txt", "rt");
    fo=fopen("output.txt", "wt");
    if ((fi!=NULL)&&(fo!=NULL))
    {
        stdin=fi;
        stdout=fo;*/
        read_input();
        max_influ();
        /*stdout=sto;
        stdin=sti;
    }
    if (fi!=NULL)
        fclose(fi);
    if (fo!=NULL)
        fclose(fo);*/

    return 0;
}