from collections import deque import sys input = sys.stdin.readline N, M = map(int, input().split()) Edge = [[]for _ in range(N)] for _ in range(M): a, b = map(int, input().split()) Edge[a-1].append(b-1) Edge[b-1].append(a-1) Q = int(input()) ans = [None]*Q for q in range(Q): st = int(input()) st -= 1 Q = deque() Q.append(st) visited = set([st]) dist = [-1]*N dist[st] = 0 md = 0 while Q: s = Q.pop() for v in Edge[s]: if v not in visited: visited.add(v) if dist[v] == -1: dist[v] = dist[s] + 1 md = max(md, dist[v]) Q.appendleft(v) ans[q] = (len(visited) - 1,(md-1).bit_length() if md else 0) for a in ans: print(*a)