#include <bits/stdc++.h> using namespace std; int main() { int N,M; cin >> N >> M; vector<int>A(N); vector<pair<int,int>>C(N); for(int i = 0; i < N; i++) { cin >> A[i]; C[i] = {A[i],i}; } sort(C.begin(),C.end()); vector<vector<int>>road(N); for(int i = 0; i < M; i++) { int u,v; cin >> u >> v; u--; v--; road[u].push_back(v); road[v].push_back(u); } int K; cin >> K; vector<int>tmp(N); for(int i = 0; i < K; i++) { int B; cin >> B; B--; tmp[B] = 1; } vector<int>ans; for(int i = 0; i < N; i++) { if(tmp[C[i].second]) { ans.push_back(C[i].second+1); for(int j = 0; j < road[C[i].second].size(); j++) { if(C[i].first < A[road[C[i].second][j]]) { tmp[road[C[i].second][j]] ^= 1; } } } } cout << ans.size() << endl; for(int i = 0; i < ans.size(); i++) { cout << ans[i] << endl; } }