constint N =1e6+10, M =2* N, INF =0x3f3f3f3f;int n, m, k, h[N], e[M], ne[M], idx =0;bool visited[N];voidadd(int a,int b){e[idx]= b, ne[idx]= h[a], h[a]= idx++;}voiddfs(int u,int x){visited[u]=true;for(int v = h[u]; v !=-1; v = ne[v]){int j = e[v];if(visited[j]==false){dfs(j, x);}}}intfind_repaired_highways(int x){fill(visited, visited + N,false);int cnt =0;visited[x]=true;for(int i =1; i <= n;++i){if(visited[i]==false){dfs(i, x);cnt++;}}return cnt -1;}intmain(){fill(h, h + N,-1);cin >> n >> m >> k;while(m--){int a, b;cin >> a >> b;add(a, b);add(b, a);}while(k--){int x;cin >> x;int ret =find_repaired_highways(x);cout << ret << endl;}return0;}