Москиты, завезённые на Уран с Земли, мутировали и расплодились в больших
количествах. Теперь разумным жителям Урана приходится
постоянно шлёпать самих себя, убивая насекомых, норовящих
высосать из них протоплазму. Возможно, именно поэтому количество рук
у новых отпочковавшихся уранцев может быть больше, чем у их родителя.
У первого ребёнка каждого уранца столько же рук, сколько у его отца.
У второго ребёнка — рук в два раза больше, чем у отца, у третьего —
в три раза больше, и так далее. Ни один уранец за свою жизнь не может отпочковать
больше g детей.
А теперь о кино. Премьера 146-го эпизода «Звёздных войн» пройдёт
одновременно в g кинозалах, а в очереди за билетами выстроились уже n
уранцев. Кассир Федя боится, что братья-уранцы во время просмотра фильма начнут выяснять отношения друг с другом. Поэтому он хочет продать билеты так, чтобы два брата не попали в один кинозал.
Конечно, он не в курсе родственных связей зрителей, но зато
прекрасно видит, сколько рук у каждого из них. Сможет ли Федя по этой информации
распределить уранцев по залам так, чтобы ни в каком зале гарантированно не
оказалось двух уранцев, имеющих общего отца?
Исходные данные
В первой строке записаны целые числа n и g (1 ≤ n ≤ 50 000;
2 ≤ g ≤ 5). Далее записаны n попарно различных целых чисел,
задающих количество рук у уранцев, стоящих в очереди. У каждого уранца не
менее одной и не более 109 рук.
Результат
Если Феде удастся распределить уранцев по кинозалам требуемым образом,
выведите в первой строке «Yes», а затем выведите n чисел, указывающих
номер зала для каждого зрителя. Зрителей нужно описывать в том же порядке,
в котором они заданы на входе. Кинозалы занумерованы числами от 1 до g.
Если задача имеет несколько решений, выведите любое из них.
Если задача не имеет решения, выведите «No».
Пример
исходные данные | результат |
---|
5 2
1
2
3
4
6
| Yes
1
2
1
1
2
|
Автор задачи: Андрей Демидов
Источник задачи: Открытое личное первенство УрФУ по программированию 2012