from collections import deque

n, q = map(int, input().split())
graph = [[] for _ in range(n)]
for _ in range(n - 3):
    u, v = [int(x) - 1 for x in input().split()]
    graph[u].append(v)
    graph[v].append(u)

roots = []
island = [-1 for _ in range(n)]
furthest = [0 for _ in range(n)]

def bfs(src):
    dist = [n for _ in range(n)]
    dist[src] = 0
    q = deque([src])
    while q:
        u = q.popleft()
        for v in graph[u]:
            if dist[u] + 1 < dist[v]:
                dist[v] = dist[u] + 1
                q.append(v)

    return dist

diameters = []
for u in range(n):
    if island[u] == -1:
        island_id = len(roots)
        roots.append(u)
        dist1 = bfs(u)
        far1 = u
        for v in range(n):
            if dist1[v] < n:
                island[v] = island_id
                furthest[v] = dist1[v]
                if dist1[v] > dist1[far1]:
                    far1 = v

        dist2 = bfs(far1)
        far2 = far1
        for v in range(n):
            if dist2[v] < n:
                furthest[v] = max(furthest[v], dist2[v])
                if dist2[v] > dist2[far2]:
                    far2 = v

        diameters.append(dist2[far2])

        dist3 = bfs(far2)
        for v in range(n):
            if dist3[v] < n:
                furthest[v] = max(furthest[v], dist3[v])

for _ in range(q):
    u, v = [int(x) - 1 for x in input().split()]
    other = 3 ^ island[u] ^ island[v]
    ans = furthest[u] + furthest[v] + diameters[other] + 3
    print(ans)
