#include<bits/stdc++.h>
#define MAXN 1005
using namespace std;
int G[MAXN][MAXN];
bool vis[MAXN];
int n, m;
void DFS(int nowvisit){
vis[nowvisit] = true;
for(int i = 1; i <= n; i++){
if(G[nowvisit][i] && vis[i] == false){
DFS(i);
}
}
}
void DFSTrarse(int &num){
for(int i= 1; i <= n; i++){
if(vis[i] == false){
num++;
DFS(i);
}
}
}
int main(){
int k, n1, n2, num;
cin >> n >> m >> k;
for(int i = 0; i < m;i++){
cin >> n1 >> n2;
G[n1][n2] = G[n2][n1] = 1;
}
for(int i = 0; i < k; i++){
fill(vis, vis+MAXN, false);
cin >> num;
vis[num] = true;
int num = 0;
DFSTrarse(num);
if(num)cout << num-1 << endl;
else cout << 0 << endl;
}
return 0;
}