#include #include #include #define inf 1000000000 using namespace std; int n, m; vector G[100005]; int dist[100005]; void bfs(int s) { dist[s] = 0; queue Q; Q.push(s); int v; while(Q.size()){ v = Q.front(); Q.pop(); for(int i = 0; i < G[v].size(); i++){ if(dist[G[v][i]] < inf) continue; dist[G[v][i]] = dist[v] + 1; Q.push(G[v][i]); } } } int main(void) { cin >> n >> m; int u, v; for(int i = 1; i <= m; i++){ cin >> u >> v; G[u].push_back(v); G[v].push_back(u); } int Q, a; cin >> Q; for(int q = 0; q < Q; q++){ cin >> a; for(int i = 1; i <= n; i++) dist[i] = inf; bfs(a); int cnt = 0, mx = 0; for(int i = 1; i <= n; i++) if(dist[i] < inf) cnt++; cout << cnt-1 << " "; for(int i = 1; i <= n; i++) if(dist[i] < inf) mx = max(mx, dist[i]); for(int i = 0; ; i++){ if(mx <= (1<