#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 1e5 + 5;
const int M = 1e5 + 5;
const int Q = 1e5 + 5;
// Duyệt ngược truy vấn => chuyển từ thao tác xoá cạnh thành thao tác thêm cạnh
struct Edge {
int u, v;
};
int n, m, q;
vector<Edge> edges;
vector<int> queries;
int p[N], sz[N];
void initSet() {
for (int u = 1; u <= n; u++) {
p[u] = u;
sz[u] = 1;
}
}
int findSet(int u) {
if (p[u] == u) return u;
return p[u] = findSet(p[u]);
}
bool unionSet(int u, int v) {
u = findSet(u);
v = findSet(v);
if (u == v) return false;
if (sz[u] < sz[v]) swap(u, v);
p[v] = u;
sz[u] += sz[v];
return true;
}
bool marked[M];
int ans[Q];
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m >> q;
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
edges.push_back({u, v});
}
for (int i = 0; i < q; i++) {
int id; cin >> id;
--id;
marked[id] = true;
queries.push_back(id);
}
initSet();
int num_cc = n; // Số thành phần liên thông
for (int i = 0; i < m; i++) {
if (marked[i]) continue;
Edge e = edges[i];
num_cc -= unionSet(e.u, e.v);
}
for (int i = q - 1; i >= 0; i--) {
ans[i] = num_cc;
int id = queries[i];
Edge e = edges[id];
num_cc -= unionSet(e.u, e.v);
}
for (int i = 0; i < q; i++) cout << ans[i] << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAxZTUgKyA1OyAKY29uc3QgaW50IE0gPSAxZTUgKyA1OyAKY29uc3QgaW50IFEgPSAxZTUgKyA1OyAKCi8vIER1eeG7h3QgbmfGsOG7o2MgdHJ1eSB24bqlbiA9PiBjaHV54buDbiB04burIHRoYW8gdMOhYyB4b8OhIGPhuqFuaCB0aMOgbmggdGhhbyB0w6FjIHRow6ptIGPhuqFuaCAKCnN0cnVjdCBFZGdlIHsKCWludCB1LCB2OyAgCn07IAoKaW50IG4sIG0sIHE7ICAgCnZlY3RvcjxFZGdlPiBlZGdlczsgCnZlY3RvcjxpbnQ+IHF1ZXJpZXM7ICAKCmludCBwW05dLCBzeltOXTsgCgp2b2lkIGluaXRTZXQoKSB7Cglmb3IgKGludCB1ID0gMTsgdSA8PSBuOyB1KyspIHsKCQlwW3VdID0gdTsgIAoJCXN6W3VdID0gMTsgCgl9Cn0KCmludCBmaW5kU2V0KGludCB1KSB7CglpZiAocFt1XSA9PSB1KSByZXR1cm4gdTsgIAoJcmV0dXJuIHBbdV0gPSBmaW5kU2V0KHBbdV0pOyAKfQoKYm9vbCB1bmlvblNldChpbnQgdSwgaW50IHYpIHsKCXUgPSBmaW5kU2V0KHUpOyAKCXYgPSBmaW5kU2V0KHYpOyAKCWlmICh1ID09IHYpIHJldHVybiBmYWxzZTsgCglpZiAoc3pbdV0gPCBzelt2XSkgc3dhcCh1LCB2KTsgCglwW3ZdID0gdTsgCglzelt1XSArPSBzelt2XTsgCglyZXR1cm4gdHJ1ZTsgCn0KCmJvb2wgbWFya2VkW01dOyAKaW50IGFuc1tRXTsKCmludCBtYWluKCkgewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyAKCWNpbi50aWUobnVsbHB0cik7IAkKCWNpbiA+PiBuID4+IG0gPj4gcTsgIAoKCWZvciAoaW50IGkgPSAwOyBpIDwgbTsgaSsrKSB7CgkJaW50IHUsIHY7IAoJCWNpbiA+PiB1ID4+IHY7IAoJCWVkZ2VzLnB1c2hfYmFjayh7dSwgdn0pOyAKCX0KCglmb3IgKGludCBpID0gMDsgaSA8IHE7IGkrKykgewoJCWludCBpZDsgY2luID4+IGlkOyAgCgkJLS1pZDsgIAoJCW1hcmtlZFtpZF0gPSB0cnVlOyAKCQlxdWVyaWVzLnB1c2hfYmFjayhpZCk7IAoJfQoKCWluaXRTZXQoKTsgICAKCglpbnQgbnVtX2NjID0gbjsgLy8gU+G7kSB0aMOgbmggcGjhuqduIGxpw6puIHRow7RuZwoJZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHsKCQlpZiAobWFya2VkW2ldKSBjb250aW51ZTsgCgkJRWRnZSBlID0gZWRnZXNbaV07IAoJCW51bV9jYyAtPSB1bmlvblNldChlLnUsIGUudik7IAoJfQoKCWZvciAoaW50IGkgPSBxIC0gMTsgaSA+PSAwOyBpLS0pIHsKCQlhbnNbaV0gPSBudW1fY2M7ICAKCQlpbnQgaWQgPSBxdWVyaWVzW2ldOyAKCQlFZGdlIGUgPSBlZGdlc1tpZF07IAoJCW51bV9jYyAtPSB1bmlvblNldChlLnUsIGUudik7IAoJfQoKCWZvciAoaW50IGkgPSAwOyBpIDwgcTsgaSsrKSBjb3V0IDw8IGFuc1tpXSA8PCAnXG4nOyAKfQ==