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