func_code_string: #include <bits/stdc++.h>   using namespace std;   map<long long, vector<long long>> M;   bool res[100010];   int main() {     long long n;     long long k;     cin >> n >> k;     long long S = 0;     for (long long i = 1; i <= n; i++) {       long long a;       cin >> a;       M[a].push_back(i);       S += a;     }     if (S < k) {       cout <<  -1 ;       return (0);     }     if (S == k) return (0);     long long lv_prev = 0;     long long tmp = n;     map<long long, vector<long long>>::iterator it = M.begin();     while (true) {       long long lv = it->first;       if (k >= (lv - lv_prev) * tmp) {         k -= ((lv - lv_prev) * tmp);         tmp -= it->second.size();       } else         break;       it++;       lv_prev = lv;     }     long long dlt = k / tmp + lv_prev;     k %= tmp;     vector<pair<long long, long long>> V;     for (; it != M.end(); it++) {       for (long long i = 0; i < it->second.size(); i++) {         V.push_back(make_pair(it->second[i], it->first - dlt));       }     }     sort(V.begin(), V.end());     cout <<   ;     for (int i = 0; i < k; i++) {       V[i].second -= 1;       V.push_back(V[i]);     }     for (int i = k; i < V.size(); i++)       if (V[i].second > 0) cout << V[i].first <<    ;   exit:     return (0);   }   