eolymp
bolt
Try our new interface for solving problems
Problems

Коровники

Коровники

В селе Максоярославке коровы обычно пасутся на лужайках, соединённых дорожками, на каждой лужайке пасётся хотя бы одна корова. При этом для каждой пары лужаек есть ровно один способ пройти от одной лужайки до другой. По каждой дорожке можно двигаться в обоих направлениях. Считается, что все дорожки имеют одинаковую длину. Главный фермер села хочет построить на лужайках \textbf{k} коровников для своих коров. Ясно, что каждая корова вечером будет возвращаться именно в тот коровник, который ближе к её лужайке (если расстояние до коровников одинаково, то в любой из них). Поэтому возникает задача определения такого расположения коровников, при котором наибольшее из расстояний, проходимых коровами, было бы минимально. \InputFile В первой строке входного файла содержатся два числа \textbf{n} и \textbf{k} (\textbf{2} ≤ \textbf{n} ≤ \textbf{50000}, \textbf{1} ≤ \textbf{k} ≤ \textbf{n}) - количество лужаек и планируемое число коровников, соответственно. Следующие \textbf{n-1} строк содержат описания дорожек. Каждая дорожка задаётся парой целых положительных чисел (\textbf{a}, \textbf{b}), где \textbf{a} и \textbf{b} - номера лужаек, которые соединяет данная дорожка. Лужайки нумеруются с единицы. \OutputFile В первой строке выходного файла выведите \textbf{l} - максимальное количество дорожек, по которым придётся пройти корове, чтобы попасть в коровник. Во второй строке выведите \textbf{k} различных целых чисел - номера лужаек, на которых следует построить коровники. Если оптимальных решений несколько, разрешается вывести любое из них.
Time limit 2 seconds
Memory limit 64 MiB
Input example #1
7 2
5 4
4 3
1 3
2 3
4 6
6 7
Output example #1
2
1 4