#P1659. 善良的国王

善良的国王

传说中有一个善良的国王Good,他为了不劳民伤财,每当建造一个城镇的时候都只用一条路去连接,这样就可以省很多的人力和物力,也就说如果有n个城镇,那么只需要n-1条路就可以把所有的城镇链接起来了(也就是一颗树了)。但是不幸的事情发生了:有个一强大的帝国想要占领这个国家,但是由于国王Good的兵力不足,只能守护m个城镇,所以经过商量,国王Good只能从他的所有城镇中选择m个相链接的城市,并且把所有可以链接到这m个城镇的道路都毁掉以阻止强大帝国的入侵。由于毁掉道路也需要花费一定的代价,所以为了经可能的保存实力,国王Good想要毁掉最可能少的道路。现在请聪明的你帮助这位善良的国王Good吧。(m个城市可以是任意的,只要能连接在一起就可以。)

Input

第一行一个t,代表有t组测试数据;
每组测试数据第一行有两个数,n,m(0<n<500,0=<m<=n)分别代表城镇总的数量和要保留的城镇数量。
接下来的n-1行,每行包括两个数字,x,y(0<x,y<=n)表示x和y连通。

Output

每组输出站一行。输出格式“case #i: ans”,i代表第i组测试数据,ans即为最少要删除的边数。

Sample Input

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

Sample Output

</p>
case  #1: 2

hint:一种可行的方法就是保留(2,3,6)或者(3,4,6)等;

HINT

Source