import collections, heapq, math n, m = map(int, input().split()) friend = collections.defaultdict(list) for _ in range(m): p, q = map(lambda s : int(s) - 1, input().split()) friend[p].append(q) friend[q].append(p) q = int(input()) alist = [int(input()) - 1 for _ in range(q)] for a in alist: # DIJKSTRA d = [float('inf')] * n d[a] = 0 pq = [] for i in range(n): heapq.heappush(pq, (d[i], i)) while pq: _, x = heapq.heappop(pq) for y in friend[x]: if d[x] + 1 < d[y]: d[y] = d[x] + 1 heapq.heappush(pq, (d[y], y)) b = 0 # 友達の数 c = 0 # もっとも遠い友達までのスコア。 for v in d: if v != 0 and v != float('inf'): b += 1 c = max(c, v) if c == 0: print(b, c) else: print(b, math.ceil(math.log2(c)))