from collections import deque n, m = map(int, input().split()) edges = [[] for _ in range(n)] for _ in range(m): u, v = map(int, input().split()) u -= 1 v -= 1 edges[u].append(v) edges[v].append(u) Q = int(input()) for _ in range(Q): a = int(input()) - 1 queue = deque() queue.append(a) dist = [-1] * n dist[a] = 0 ans = 0 while queue: pos = queue.popleft() for npos in edges[pos]: if dist[npos] != -1: continue dist[npos] = dist[pos] + 1 queue.append(npos) ans += 1 ma = max(dist) c = 0 while (1 << c) < ma: c += 1 print(ans, c)