import heapq n,m=map(int,input().split()) a=list(map(int,input().split())) g=[[] for _ in range(n)] for _ in range(m): u,v=map(int,input().split()) u-=1;v-=1 if a[u]a[v]: g[v].append(u) k=int(input()) b=list(map(int,input().split())) memo=[0]*n for i in b: memo[i-1]=1 q=[(a[i-1],i-1) for i in b] heapq.heapify(q) ans=[] while q: num,now=heapq.heappop(q) if memo[now]==0: continue ans.append(now) memo[now]=0 for to in g[now]: memo[to]=1-memo[to] if memo[to]: heapq.heappush(q,(a[to],to)) print(len(ans)) for i in ans: print(i+1)