N,M=map(int,input().split()) A=[0]+list(map(int,input().split())) E=[[] for i in range(N+1)] for i in range(M): u,v=map(int,input().split()) if A[u]>A[v]: E[v].append(u) elif A[v]>A[u]: E[u].append(v) K=int(input()) B=list(map(int,input().split())) LIGHT=[0]*(N+1) for b in B: LIGHT[b]=1 DEGIN=[0]*(N+1) for i in range(1,N+1): for k in E[i]: DEGIN[k]+=1 Q=[] ANS=[] for i in range(1,N+1): if DEGIN[i]==0: Q.append(i) while Q: now=Q.pop() if LIGHT[now]==1: ANS.append(now) for to in E[now]: LIGHT[to]^=1 for to in E[now]: DEGIN[to]-=1 if DEGIN[to]==0: Q.append(to) print(len(ANS)) print("\n".join(map(str,ANS)))