卡其脱离太
题号:NC222229
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述


一天,哆啦B梦在补番的时候,看到了如下场景

我是不会停下来的...只要你们不停下来,我就会在前方等着你们,所以,不要停下来啊...

bgm正要响起之时,希望之花被打断了。原来是番外势力大熊想要身临其境的看番,因此偷了哆啦B梦的道具进入了动漫世界。但是这也导致了时间线的变动,黑色轿车并没有立刻逃离,而是向着莱纳直接冲了过去。

看着变动的世界线,大熊意识到自己闯祸了,连忙喊哆啦B梦帮帮忙。哆啦B梦虽然着急,但是他并不会利用黑客技术直接更改世界线,真是失败的番外势力!因此,哆啦B梦只能采用直接的办法:重启这一条世界线,可是这需要时间。

此时被追赶的莱纳已经来不及思考了,他的脑子里充满了团长的教诲,不要停下来!为了逃避黑色轿车的追赶,同时拖延足够的时间来让多啦B梦重启时间线,他开始奔跑了起来。可是地图十分复杂,莱纳不知道怎么样选择路线才能拖延最长的时间!因此需要大熊来帮他规划路线。

哆啦B梦会给予他一次性的传送门来拖延更多的时间,这个传送门可以帮助莱纳到达地图上的任何一个点。注意:使用传送门需要占用一秒时间。即某一时刻里莱纳使用传送门后不能立刻行动,要等到轿车行动后才能继续行动。
莱纳被抓住的定义为:当黑色轿车行动之后莱纳和黑色轿车处于同一点,那么莱纳就会被抓住。换言之,如果他们初始处于同一点,莱纳不会被立刻抓住。

地图成树状,即有n个点,n-1条边,保证地图联通。莱纳和黑色轿车在边上移动需要1秒,黑色轿车初始处于1号节点,莱纳初始处于x号节点,每一秒里莱纳先行动,然后黑色轿车再行动,问莱纳最多可以拖延多少秒?


输入描述:

第一行为n和x(2 <= n <= 1e6,1 <= x <= n),代表点数和莱纳的起始位置

之后的n-1行u,v代表点u和点v间有一条边相连,保证不成环。


输出描述:

输出莱纳被最迟会被抓的时刻
示例1

输入

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

输出

复制
5

说明

示例2

输入

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

输出

复制
3

备注:

注意莱纳是可以呆在原地不动的。