func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long maxn = 5050;   long long a[maxn];   long long c[maxn];   long long tag[maxn];   long long number[maxn];   int main() {     long long i, j, k, n, m;     while (scanf( %lld%lld , &n, &k) != EOF) {       memset(tag, 0, sizeof(tag));       for (i = 1; i <= n; i++) {         scanf( %lld , &a[i]);         tag[a[i]]++;       }       for (i = 1; i <= 5000; i++) number[i] = 1;       bool flag = true;       for (i = 1; i <= 5000; i++)         if (tag[i] > k) {           flag = false;           break;         }       if (!flag)         printf( NO n );       else {         long long cnt = 1;         for (i = 1; i <= 5000; i++) {           for (j = 1; j <= 5000; j++)             if (a[j] == i) {               c[j] = cnt;               cnt++;               if (cnt > k) cnt = 1;             }         }         printf( YES n );         for (i = 1; i <= n; i++) printf( %lld  , c[i]);         printf(  n );       }     }   }   