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: if LIGHT[i]==1: Q.append((i,1)) ANS.append(i) else: Q.append((i,0)) while Q: #print(Q) now,t=Q.pop() for to in E[now]: if t!=LIGHT[to]: ANS.append(to) Q.append((to,LIGHT[to])) print(len(ANS)) print("\n".join(map(str,ANS)))