#include using namespace std; int main() { int n, m, q; cin >> n >> m; vector> g(n); for (int i = 0; i < m; i++) { int a, b; cin >> a >> b; a--; b--; g[a].emplace_back(b); g[b].emplace_back(a); } cin >> q; for (int i = 0; i < q; i++) { int a; cin >> a; a--; vector sz(n, 1), dist(n, 0); auto f = [&](auto &h, int now, int par, int d) -> int { dist[now] = d; for (auto &next : g[now]) { if (next == par) { continue; } sz[now] += h(h, next, now, d + 1); } return sz[now]; }; f(f, a, -1, 0); int day = 0, maxi = *max_element(dist.begin(), dist.end()); while (maxi) { day++; maxi /= 2; } cout << sz[a] - 1 << ' ' << day << endl; } return 0; }