#jag2017autumne. [jag2017autumn_e]Tree Separator

[jag2017autumn_e]Tree Separator

题目描述

给定一棵树 TT 和一个整数 KK。你可以在 TT 上选择任意不同的两个顶点 uuvv。设 PP 是连接 uuvv 的简单路径。然后,从 TT 中移除路径 PP 中的顶点和边(如果边的一端或两端顶点在 PP 中)。你的任务是选择 uuvv,使得在这个操作后,TT 中至少有 KK 个或更多顶点的连通分量的数量最大。


输入

输入包含一个单独的测试用例,格式如下所示。

NKN \\ K u_1v_1u\_1 \\ v\_1 vdots\\vdots u_N1v_N1u\_{N-1} \\ v\_{N-1}

第一行包含两个整数 NNKK2N100,0002 \le N \le 100{,}0001KN1 \le K \le N)。接下来的 N1N-1 行表示树的边信息。第 (i+1)(i+1) 行包含两个整数 u_iu\_iv_iv\_i1u_i,v_iN1 \le u\_i, v\_i \le N,对于每个 ii,有 u_iv_iu\_i \ne v\_i)。每个 u_i,v_i\\{u\_i, v\_i\\} 是树 TT 的一条边。保证这些边构成一棵树。

输出

在一行中输出连通分量中顶点数目至少为 KK 的数量的最大值。


示例输入1

2 1
1 2

示例输出1

0

示例输入2

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

示例输出2

1

示例输入3

12 2
1 2
2 3
3 4
4 5
3 6
6 7
7 8
8 9
6 10
10 11
11 12

示例输出3

4

示例输入4

3 1
1 2
2 3

示例输出4

1

示例输入5

3 2
1 2
2 3

示例输出5

0

示例输入6

9 3
1 2
1 3
1 4
4 5
4 6
4 7
7 8
7 9

示例输出6

2