#include #if __has_include() #include using namespace atcoder; #endif #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; using P = pair; using ll = long long; int main() { int n, m; cin >> n >> m; vector

es; rep(i, m) { int a, b; cin >> a >> b; --a; --b; es.emplace_back(a, b); } int q; cin >> q; vector B(q); rep(i, q) cin >> B[i], B[i]--; set st(B.begin(), B.end()); dsu uf(n); ll base = (ll)n*(n-1)/2; rep(i, m) if (!st.count(i)) { auto [a, b] = es[i]; if (uf.same(a, b)) continue; base -= (ll)uf.size(a)*uf.size(b); uf.merge(a, b); } vector ans(q); ans[q-1] = base; for (int i = q-1; i >= 1; --i) { ans[i-1] = ans[i]; auto [a, b] = es[B[i]]; if (uf.same(a, b)) continue; ans[i-1] -= (ll)uf.size(a)*uf.size(b); uf.merge(a, b); } rep(i, q) cout << ans[i] << '\n'; return 0; }