//小さな数から操作して、大きな数を後に回せば、全部消灯させることができる。 #include #include #include #define rep(i, n) for(i = 0; i < n; i++) using namespace std; typedef pair P; int n, m; int a[100000]; vector et[100000]; bool on[100000]; signed main() { int i, j; cin >> n >> m; rep(i, n) cin >> a[i]; rep(i, m) { int u, v; cin >> u >> v; u--; v--; et[u].push_back(v); et[v].push_back(u); } int K; cin >> K; rep(i, K) { int b; cin >> b; b--; on[b] = true; } vector

vec; rep(i, n) { vec.push_back(P(a[i], i)); } sort(vec.begin(), vec.end()); vector ans; rep(i, n) { int id = vec[i].second; if (on[id] == false) continue; ans.push_back(id); on[id] = false; rep(j, et[id].size()) { int v = et[id][j]; if (a[v] > a[id]) on[v] = !on[v]; } } cout << ans.size() << endl; rep(i, ans.size()) { cout << ans[i] + 1 << endl; } return 0; }