Республиканская олимпиада по информатике 2020 года за 11 класс | Казахстанские олимпиады

Maximum matching

Ограничение по времени Ограничение по памяти
2 секунды 1024 мегабайт

Дано дерево из nn (2n105)(2 \leq n \leq 10^5) вершин и положительное число k(1kn/2)k (1 \leq k \leq n/2). В этом дереве надо выбрать kk пар вершин, так чтобы каждая вершина встречалась максимум в одной паре, и суммарное расстояние было максимальным. То есть надо выбрать пары (xix_i, yiy_i) (1ik)(1 \leq i \leq k) так, чтобы i=1kdis(xi,yi)\sum^k_{i=1} dis(x_i, y_i) — было максимальным и множество вершин x1,x2,...,xk,y1,y2,...,ykx_1, x_2, ..., x_k, y_1, y_2, ..., y_k были различными. dis(u,v)dis(u, v) расстояние между вершинами uu и vv в дереве.

Формат входного файла

В первой строке содержится два целых числа nn и kk. В следующих n1n − 1 строках заданы рёбра дерева в формате ai,bi(1ai,bin)a_i, b_i (1 \leq a_i, b_i \leq n). Гарантируется, что заданный граф является деревом

Формат выходного файла

Выведите kk строк, в каждой строке две вершины xi,yi(1ik)x_i, y_i (1 \leq i \leq k). Если существует несколько правильных ответов, выведите любой из них.

Примеры

Вход

3 1
1 2
1 3

Выход

3 2

Вход

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

Выход

7 6
3 5
4 1