func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 100500;   int a[maxn];   int main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     int n;     long long k;     cin >> n >> k;     long long sm = 0;     priority_queue<pair<int, int> > pq;     for (int i = 0; i < n; ++i) {       cin >> a[i];       sm += a[i];       pq.push({-a[i], i});     }     if (sm < k) return cout << -1 <<   n , 0;     if (sm == k) return 0;     long long it = 0, lft = n;     while (true) {       assert(!pq.empty());       auto u = pq.top();       u.first += it;       lft = (int)pq.size();       if (lft * -1LL * u.first > k) break;       pq.pop();       while (pq.top().first + it == u.first) pq.pop();       k -= lft * -1LL * u.first;       it += u.first * -1LL;     }     for (int i = 0; i < n; ++i) a[i] = 0;     it += k / lft;     k %= lft;     while (!pq.empty()) {       a[pq.top().second] = (pq.top().first + it) * -1LL;       pq.pop();     }     queue<int> q;     for (int i = 0; i < n; ++i)       if (a[i]) q.push(i);     while (k--) {       auto u = q.front();       q.pop();       a[u]--;       if (a[u]) q.push(u);     }     while (!q.empty()) {       cout << q.front() + 1 <<    ;       q.pop();     }     return 0;   }   