#2467. 奶牛健美操

奶牛健美操

题目描述

FarmerJohn\red{Farmer John}为了保持奶牛们的降,让可怜的奶牛们不停在牧场之间 的小路上奔跑。这些奶牛的路径集合可以被表示成一个点集和一些连接 两个顶点的双向路,使得每对点之间恰好有一条简单路径。

简单的说来, 这些点的布局就是一棵树,且每条边等长,都为1\red{1}。 对于给定的一个奶牛路径集合,精明的奶牛们会计算出任意点对路径的最大值, 我们称之为这个路径集合的直径。如果直径太大,奶牛们 就会拒绝锻炼。

FarmerJohn\red{Farmer John}把每个点标记为1..V(2<=V<=100,000)\red{1..V (2 <= V <= 100,000)}。为了获得更加短的直径,他可以选择封锁一些已经存在的道路,这样就可以得到更多的路径集合, 从而减小一些路径集合的直径。 我们从一棵树开始,FJ\red{FJ}可以选择封锁S(1<=S<=V1)\red{S (1 <= S <= V-1)}条双向路,从而获得 S+1\red{S+1}个路径集合。

你要做的是计算出最佳的封锁方案,使得他得到的所有路径集合 直径的最大值旧能小。

FarmerJohn\red{Farmer John}告诉你所有V1\red{V-1}条双向道路,每条表述为:顶点Ai(1<=Ai<=V)\red{A_i (1 <= A_i <= V) }Bi(1<=Bi<=V\red{B_i (1 <= B_i <= V}; Ai!=Bi)\red{A_i!= B_i)}连接。 我们来看看如下的例子:线性的路径集合(7\red{(7}个顶点的树)1234567\red{) 1---2---3---4---5---6---7 }如果FJ\red{FJ}可以封锁两条道路,他可能的选择如下: 1234567\red{1---2 | 3---4 | 5---6---7 }这样最长的直径是2\red{2,}即是最优答案(\red{(}当然不是唯一的)\red{)}

输入格式

1\red{1}行: 两个空格分隔的整数V\red{V}S\red{S }

2...V\red{2...V}行: 两个空格分隔的整数Ai\red{A_i}Bi\red{B_i}

输出格式

1\red{1}行:一个整数,表示FJ\red{FJ}可以获得的最大的直径。

样例

输入样例

7 2
6 7
3 4
6 5
1 2
3 2
4 5

输出样例

2