func_code_string: #include <bits/stdc++.h>   long long int n, k;   long long int a[100010], max;   long long int print[100010], pc;   int main(void) {     long long int i, j, f, l, mid;     long long int sum, baki = 2147483647;     scanf( %I64d %I64d , &n, &k);     for (i = 1; i <= n; i++) {       scanf( %I64d , &a[i]);       if (max < a[i]) max = a[i];     }     if (k == 0) {       for (i = 1; i <= n; i++) {         printf( %I64d  , i);       }       return false;     }     f = 1, l = max;     for (;;) {       mid = (f + l) / 2;       sum = 0;       for (i = 1; i <= n; i++) {         if (a[i] >= mid)           sum += mid;         else           sum += a[i];       }       if (sum >= k) {         if (baki > mid) baki = mid;         l = mid - 1;       } else {         f = mid + 1;       }       if (f > l) break;     }     if (baki == 2147483647) {       printf( -1 n );       return false;     }     for (i = 1; i <= n; i++) {       if (baki > a[i])         k -= a[i];       else         k -= baki - 1;     }     for (i = 1; i <= n; i++) {       if (baki <= a[i]) k--;       if (k == 0) break;     }     if (k > 0) {       printf( -1 n );       return false;     }     for (j = i + 1; j <= n; j++) {       if (baki <= a[j]) {         print[++pc] = j;       }     }     for (j = 1; j <= i; j++) {       if (baki < a[j]) {         print[++pc] = j;       }     }     for (i = 1; i <= pc; i++) {       printf( %I64d  , print[i]);     }     return false;   }   