value = []
seen = []
cons = []
edges = []

def dfs(x):
    seen[x] = True
    value[x] = 1
    for element in edges[x]:
        if seen[element]:
            value[x] += value[element]
        else:
            value[x] += dfs(element)
    return value[x]

def initList(l, n):
    for i in range(n+1):
        l.append([])
        seen.append(False)
        value.append(0)

if __name__ == '__main__':
    n, m = map(int, raw_input().split(' '))
    initList(edges, n)
    cons = map(int, raw_input().split(' '))
    for i in range(n):
        ch = map(int, raw_input().split(' '))
        for j in range(1, len(ch), 1):
            edges[ch[0]].append(ch[j])

    max = 0
    node = 0
    for i in range(len(cons)):
        if not seen[cons[i]]:
            x = dfs(cons[i])
            if x > max:
                max = x
                node = cons[i]
    print node