func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, a[100001], b[100001];   long long int k, SS;   int compare(const void* a, const void* b) { return (*(int*)a - *(int*)b); }   int main() {     cin >> n >> k;     for (int i = 0; i < n; i++) {       cin >> a[i];       b[i] = a[i];       SS = SS + a[i];     }     if (SS < k) {       cout << -1;       return 0;     }     if (SS == k) {       return 0;     }     qsort(b, n, sizeof(int), compare);     int s = 0;     long long int K = k;     for (int i = 0; i < n; i++)       if (b[i] > s) {         if (K >= (long long int)(n - i) * (b[i] - s)) {           K = K - (long long int)(n - i) * (b[i] - s);           s = b[i];         } else {           break;         }       }     int conlai = n;     for (int i = 0; i < n; i++) {       if (a[i] <= s) {         a[i] = -1;         conlai--;       } else         a[i] = a[i] - s;     }     for (int i = 0; i < n; i++)       if (a[i] != -1) {         a[i] = a[i] - K / conlai;         if (a[i] == 0) a[i] == -1;       }     K = K % conlai;     if (K > 0)       for (int i = 0; i < n; i++) {         if (a[i] >= 1) {           K--;           if (a[i] == 1) a[i] = -1;           if (K == 0) {             for (int j = i + 1; j < n; j++)               if (a[j] != -1) cout << j + 1 <<    ;             for (int j = 0; j <= i; j++)               if (a[j] != -1) cout << j + 1 <<    ;           }         }       }     else       for (int i = 0; i < n; i++)         if (a[i] != -1) cout << i + 1 <<    ;   }   