Задан массив \(a\), состоящий из \(n\) целых чисел.
Вам необходимо покрасить этот массив в \(k\) цветов таким образом, чтобы:
- Каждый элемент массива должен быть покрашен в какой-то цвет;
- Для всех \(i\) от \(1\) до \(k\) существует хотя бы один элемент массива, покрашенный в \(i\)-й цвет;
- Для всех \(i\) от \(1\) до \(k\) все элементы, покрашенные в \(i\)-й цвет, должны быть различны.
Очевидно, что такой раскраски может не существовать. В этом случае выведите «NO». Иначе выведите «YES» и любую раскраску (то есть числа \(c_1, c_2, \dots c_n\), где \(1 \le c_i \le k\), а \(c_i\) означает цвет \(i\)-го элемента заданного массива), удовлетворяющую ограничениям, описанным выше. Если существует несколько возможных ответов, выведите любой.
Выходные данные
Если ответа не существует, выведите «NO». Иначе выведите «YES» и любую раскраску (то есть числа \(c_1, c_2, \dots c_n\), где \(1 \le c_i \le k\), а \(c_i\) означает цвет \(i\)-го элемента заданного массива), удовлетворяющую ограничениям, описанным выше. Если существует несколько возможных ответов, выведите любой.
Примечание
В первом тестовом примере также допустим ответ \(2~ 1~ 2~ 1\).
Во втором тестовом примере также допустим ответ \(1~ 1~ 1~ 2~ 2\).
Также существуют другие возможные ответы на оба тестовых примера.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
4 2 1 2 2 3
|
YES
1 1 2 2
|
|
2
|
5 2 3 2 1 2 3
|
YES
2 1 1 2 1
|
|
3
|
5 2 2 1 1 2 1
|
NO
|