#include #include #include #include using namespace std; using ll=long long; using ull=unsigned long long; #define rep(i,n) for(int i=0; i<(n); i++) int N,M; vector> E; vector A; int K; vector X; int main(){ scanf("%d%d",&N,&M); A.resize(N); rep(i,N) scanf("%d",&A[i]); E.resize(N); rep(i,M){ int u,v; scanf("%d%d",&u,&v); u--; v--; E[u].push_back(v); E[v].push_back(u); } scanf("%d",&K); X.assign(N,0); rep(i,N){ int b; scanf("%d",&b); b--; X[b]=1; } vector> Ord; rep(i,N) Ord.push_back({A[i],i}); sort(Ord.begin(),Ord.end()); vector ans; rep(i,N){ int p = Ord[i].second; if(X[p]==0) continue; ans.push_back(p); X[p] ^= 1; for(int e:E[p]) if(A[e]>A[p]) X[e] ^= 1; } printf("%d\n",(int)ans.size()); for(int a:ans) printf("%d\n",a+1); return 0; }