CF1102B Array K-Coloring
Description
You are given an array $ a $ consisting of $ n $ integer numbers.
You have to color this array in $ k $ colors in such a way that:
- Each element of the array should be colored in some color;
- For each $ i $ from $ 1 $ to $ k $ there should be at least one element colored in the $ i $ -th color in the array;
- For each $ i $ from $ 1 $ to $ k $ all elements colored in the $ i $ -th color should be distinct.
Obviously, such coloring might be impossible. In this case, print "NO". Otherwise print "YES" and any coloring (i.e. numbers $ c_1, c_2, \dots c_n $ , where $ 1 \le c_i \le k $ and $ c_i $ is the color of the $ i $ -th element of the given array) satisfying the conditions above. If there are multiple answers, you can print any.
Input Format
The first line of the input contains two integers $ n $ and $ k $ ( $ 1 \le k \le n \le 5000 $ ) — the length of the array $ a $ and the number of colors, respectively.
The second line of the input contains $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ 1 \le a_i \le 5000 $ ) — elements of the array $ a $ .
Output Format
If there is no answer, print "NO". Otherwise print "YES" and any coloring (i.e. numbers $ c_1, c_2, \dots c_n $ , where $ 1 \le c_i \le k $ and $ c_i $ is the color of the $ i $ -th element of the given array) satisfying the conditions described in the problem statement. If there are multiple answers, you can print any.
Explanation/Hint
In the first example the answer $ 2~ 1~ 2~ 1 $ is also acceptable.
In the second example the answer $ 1~ 1~ 1~ 2~ 2 $ is also acceptable.
There exist other acceptable answers for both examples.