CF440D Berland Federalization

题目描述

最近,Berland 面临着越来越重的联邦化的要求。许多支持者建议将国家分成几个独立的州。此外,她们还要求有一个州恰好包含 $k$ 个城市。 现在,Berland 有 $n$ 个城市,有一些城市间通过双向道路连接,共有 $n−1$ 条道路。你可以从首都到达任何城市,也就是说,道路网络组成了树形结构。 道路部害怕分离后,连接不同州的道路会惹麻烦。 你的任务是想出一个满足一下要求的划分方案: - 每一个州是一个连通块,即每个州内部是互相连通的。 - 存在一个州,它恰好包含 $k$ 个城市。 - 连接不同州的道路数量尽可能小。

输入格式

第一行包含两个正整数 $n,k$($1\le k\le n\le400$)。 接下来的 $n−1$ 行,每行描述一条道路,其中包含两个整数 $x_i,y_i$($1\le x_i\ne y_i\le n$),表示有一条道路连接城市 $x_i$ 和 $y_i$。

输出格式

第一行输出一个整数,表示连接不同州的道路数量的最小值 $t$。 第二行输出 $t$ 个整数,表示连接不同州的道路对应的编号。道路按照输入的顺序从 $1$ 开始编号。如果有多种方案,输出任意一个。 如果没有满足条件的方案,输出一个 `0`,并空着第二行或根本不输出第二行。