n, x = map(int,input().split()) graph = {} res = 0 defdfs(v,l): global res st[v] = True for i in graph[v]: ifnot st[i]: dfs(i,l+1) res = max(res, l) return for i inrange(n-1): a,b = map(int,input().split()) if a notin graph: graph[a] = [b] else: graph[a].append(b) if b notin graph: graph[b] = [a] else: graph[b].append(a) st = [Falsefor _ inrange(n+10)] dfs(1,0) print(res*2)
defdfsa(u, parent): disa[u] = disa[parent] + 1 for v in graph[u]: if v != parent: dfsa(v, u)
defdfsb(u, parent): disb[u] = disb[parent] + 1 for v in graph[u]: if v != parent: dfsb(v, u)
for _ inrange(n - 1): a, b = map(int, input().split()) if a notin graph: graph[a] = [] if b notin graph: graph[b] = [] graph[a].append(b) graph[b].append(a)
# Perform DFS from node 1 (Alice's starting point)
dfsa(1,0)
# Perform DFS from node x (Bob's starting point)
dfsb(x,0)
maxval = 0
for i inrange(1, n + 1): if disb[i] < disa[i]: # Bob can reach before Alice maxval = max(maxval, disa[i] * 2)