from math import ceil, log from collections import defaultdict, deque import sys input = sys.stdin.readline #辺の重みが1なのでBFSでOK def bfs(start): queue = deque([]) queue.append(start) distance = [None] + [-1] * N distance[start] = 0 while len(queue) > 0: current_node = queue.popleft() for next_node in adj_dict[current_node]: if distance[next_node] == -1: distance[next_node] = distance[current_node] + 1 queue.append(next_node) return distance N, M = map(int, input().split()) adj_dict = defaultdict(list) for _ in range(M): pi, qi = map(int, input().split()) adj_dict[pi].append(qi) adj_dict[qi].append(pi) Q = int(input()) for _ in range(Q): Ai = int(input()) distance = bfs(Ai) ans1 = 0 for distance_i in distance[1:]: if distance_i > 0: ans1 += 1 m = max(distance[1:]) if m == 0: ans2 = 0 else: ans2 = ceil(log(m, 2)) print(ans1, ans2)