Gangstar
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

在忙碌的ICPC训练后, Vanis和Qiy玩起了警匪游戏。

游戏在一棵具有n个节点的无向树上进行,Qiy作为警察,想要尽早的抓到Vanis。而Vanis作为匪徒,想要尽量逃脱Qiy的追捕。奈何“天网恢恢,疏而不漏”,即使强如Vanis,也只能尽量拖延自己被抓到的时间。

初始时,Qiy处于1号点,Vanis处于x号点。每2秒种,两者可以选择移动1步到相邻的点或留在原地(按上文中提到的策略行动)。当二人在某个时间处于同一顶点时,Qiy便追到了Vanis。Vanis会尽量逃离Qiy的追逐,而Qiy想尽快追到Vanis。作为吃瓜群众的选手们,你们知道Qiy最少要花多少时间才能追捕到Vanis吗?


输入描述:

第一行输入两个正整数n和x,分别表示树的顶点个数以及Vanis初始所在的位置。
接下来n - 1行每行输入两个正整数u和v,表示有一条边连接顶点u和顶点v。

数据规范:
* .
* 保证输入的顶点和边构成一棵无向树。

输出描述:

输出一个整数,表示Qiy追到Vanis所需的时间。
示例1

输入

复制
4 3
1 2
2 3
2 4

输出

复制
4

说明

2s时,vanis停留在3号点,Qiy移动到2号点
4s时,vanis停留在3号点,Qiy移动到3号点,抓捕成功
示例2

输入

复制
5 2
1 2
2 3
3 4
2 5

输出

复制
6

说明

2s时,vanis移动到3号点,Qiy移动到2号点
4s时,vanis移动到4号点,Qiy移动到3号点
6s时,vanis停留在4号点,Qiy移动到4号点,抓捕成功