#include #include #include #include using namespace std; using pii = pair; using ll = long long; int fi(int f[], int u) { return f[u] == u ? u : f[u] = fi(f, f[u]); } void un(int f[], int sz[], ll &scsz2, int u, int v) { u = fi(f, u); v = fi(f, v); if (u == v) { return; } f[u] = v; scsz2 -= 1ll * sz[u] * (sz[u] - 1) / 2; scsz2 -= 1ll * sz[v] * (sz[v] - 1) / 2; sz[v] += sz[u]; scsz2 += 1ll * sz[v] * (sz[v] - 1) / 2; } int main() { int n, m; cin >> n >> m; int u[m], v[m]; for (int i = 0; i < m; i++) { cin >> u[i] >> v[i]; u[i]--; v[i]--; } int q; cin >> q; bool rem[m]; fill(rem, rem + m, false); int r[q]; for (int i = 0; i < q; i++) { cin >> r[i]; rem[--r[i]] = true; } int f[n], sz[n]; iota(f, f + n, 0); fill(sz, sz + n, 1); ll scsz2 = 0; for (int i = 0; i < m; i++) { if (!rem[i]) { un(f, sz, scsz2, u[i], v[i]); } } ll ans[q]; for (int i = q - 1; i >= 0; i--) { ans[i] = 1ll * n * (n - 1) / 2 - scsz2; un(f, sz, scsz2, u[r[i]], v[r[i]]); } for (int i = 0; i < q; i++) { cout << ans[i] << endl; } return 0; }