ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

1945. Многорукие братья

Ограничение времени: 1.0 секунды
Ограничение памяти: 64 МБ
Москиты, завезённые на Уран с Земли, мутировали и расплодились в больших количествах. Теперь разумным жителям Урана приходится постоянно шлёпать самих себя, убивая насекомых, норовящих высосать из них протоплазму. Возможно, именно поэтому количество рук у новых отпочковавшихся уранцев может быть больше, чем у их родителя. У первого ребёнка каждого уранца столько же рук, сколько у его отца. У второго ребёнка — рук в два раза больше, чем у отца, у третьего — в три раза больше, и так далее. Ни один уранец за свою жизнь не может отпочковать больше 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