N, M = map(int, input().split()) An = list(map(int, input().split())) UV = [list(map(int, input().split())) for _ in range(M)] K = int(input()) Bn = list(map(int, input().split())) An_s = [] for i, A in enumerate(An, 1): An_s.append((A, i)) An_s.sort() graph = [[] for _ in range(N+1)] for U, V in UV: graph[U].append(V) graph[V].append(U) light = [False] * (N+1) for B in Bn: light[B] = True ans = [] for v, i in An_s: if not light[i]: continue ans.append(i) light[i] = not light[i] for g in graph[i]: if An[g-1] <= v: continue light[g] = not light[g] print(len(ans)) print(*ans, sep='\n')