#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
const int N = 4e5+3;
int n, m, x, y, p, k, o;
std::vector<int> e[N];
bool del[N];
int f[N], d[N], out[N];
int find(int x){
return f[x] == x ? x : f[x] = find(f[x]);
}
int main(){
std::cin >> n >> m;
for(int i = 1; i <= n; i++) f[i] = i;
while(m--) {
std::cin >> x >> y;
x++, y++;
e[x].push_back(y);
e[y].push_back(x);
}
std::cin >> k;
int num = n - k;
for(int i = 1; i <= k; i++) {
std::cin >> d[i];
del[++d[i]] = true;
}
for(int i = 1; i <= n; i++)
if(!del[i])
for(int j : e[i])
if(!del[j] && find(i) != find(j)) f[find(i)] = find(j), num--;
for(int i = k; i >=1 ; i--){
out[++o] = num;
int x = d[i];
del[x] = false;
num++;
for(int y : e[x])
if(!del[y] && find(x) != find(y)) f[find(x)] = find(y), num--;
}
for(int i = o; i>=1; i--) std::cout << out[i] <<'\n';
std::cout << num << '\n';
return 0;
}
#7 AC,其他全 WA