G. Приватизация дорог в Древляндии
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Древляндия состоит из $$$n$$$ городов и $$$n-1$$$ дороги. Все дороги являются двусторонними и соединяют пару различных городов. Из любого города по дорогам можно добраться до любого другого. Всё верно, топология страны — это именно неориентированное дерево.

В Древляндии есть несколько частных дорожных компаний. Правительство решило передать дороги в собственность компаний. После приватизации каждая дорога будет принадлежать какой-то одной компании, одна компания может владеть несколькими дорогами.

Правительство обеспокоено возможными обвинениями в пристрастности. В правительстве полагают, что люди города могут посчитать несправедливой ситуацию, если две или более дороги, входящие в этот город, принадлежат одной компании. Правительство планирует такую приватизацию, что количество таких городов не будет превосходить $$$k$$$, а количество частных компаний (которые участвуют в приватизации) — минимально.

Выберите такое минимальное количество компаний $$$r$$$, что возможно распределить все дороги по этим компаниям так, что количество городов с двумя или более дорогами одной компании не превосходит $$$k$$$. Другими словами, назовём город хорошим, если все его дороги принадлежат различным компаниям. Ваша задача найти минимальное $$$r$$$, что существует распределение всех дорог по компаниям от $$$1$$$ до $$$r$$$, что количество не являющимися хорошими городов не превосходит $$$k$$$.

Картинка иллюстрирует первый пример ($$$n=6, k=2$$$). Ответ на этот тест содержит $$$r=2$$$ компании. Числа на рёбрах соответствуют номерам дорог. Цвета рёбер соответствуют компаниям: красный цвет обозначает первую компанию, синий цвет обозначает вторую компанию. Серая вершина (с номером $$$3$$$) соответвует городу, который не является хорошим. Количество таких вершин (в данном случае, только одна) не превосходит $$$k=2$$$. Невозможно получить не более $$$k=2$$$ таких вершин, если ответ содержит только одну компанию.
Входные данные

В первой строке записаны два целых числа $$$n$$$ и $$$k$$$ ($$$2 \le n \le 200000, 0 \le k \le n - 1$$$) — количество городов и максимальное возможное количество городов с двумя или более дорогами одной компании.

Следующие $$$n-1$$$ строк содержат описания дорог, по одному описанию в строке. Каждая строка содержит пару целых чисел $$$x_i$$$, $$$y_i$$$ ($$$1 \le x_i, y_i \le n$$$), где $$$x_i$$$, $$$y_i$$$ — номера городов, которые соединены $$$i$$$-й дорогой.

Выходные данные

В первую строку выведите искомое число $$$r$$$ ($$$1 \le r \le n - 1$$$). Во вторую строку выведите $$$n-1$$$ целое число $$$c_1, c_2, \dots, c_{n-1}$$$ ($$$1 \le c_i \le r$$$), где $$$c_i$$$ — это номер компании, которая должна владеть $$$i$$$-й дорогой. Если ответов несколько, то выведите любой из них.

Примеры
Входные данные
6 2
1 4
4 3
3 5
3 6
5 2
Выходные данные
2
1 2 1 1 2 
Входные данные
4 2
3 1
1 4
1 2
Выходные данные
1
1 1 1 
Входные данные
10 2
10 3
1 2
1 3
1 4
2 5
2 6
2 7
3 8
3 9
Выходные данные
3
1 1 2 3 2 3 1 3 1