#include using namespace std; int main() { int N,M; cin >> N >> M; vectorA(N); vector>C(N); for(int i = 0; i < N; i++) { cin >> A[i]; C[i] = {A[i],i}; } sort(C.begin(),C.end()); vector>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; vectortmp(N); for(int i = 0; i < K; i++) { int B; cin >> B; B--; tmp[B] = 1; } vectorans; 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; } }