#include <bits/stdc++.h>
using namespace std;
struct Node {
  long long value;
  int no;
} a[100005];
bool cmp1(Node a, Node b) {
  if (a.value != b.value) return (a.value > b.value);
  return (a.no > b.no);
}
bool cmp2(Node a, Node b) { return (a.no < b.no); }
int main() {
  long long k, suma = 0;
  int i, j, n;
  long long sk = 0;
  scanf("%d %I64d", &n, &k);
  for (i = 0; i < n; i++) {
    scanf("%d", &a[i].value);
    suma += a[i].value;
    a[i].no = i + 1;
  }
  a[n].value = 0;
  a[n].no = n + 1;
  if (k > suma)
    printf("-1\n");
  else if (k == suma)
    printf("\n");
  else {
    sort(a, a + n, cmp1);
    i = n - 1;
    while ((sk = (a[i].value - a[i + 1].value) * (i + 1)) <= k) {
      i--;
      k -= sk;
    }
    if (k > 0) {
      int t = i + 1;
      int tmp = a[i].value;
      int count = 0;
      int flag = 0;
      k -= (a[i].value - a[t].value - 1) * t;
      sort(a, a + i + 1, cmp2);
      for (j = 0; j <= i; j++) {
        if (a[j].value == tmp && j + 1 <= k) {
          count++;
          flag = 1;
        }
      }
      sort(a, a + i + 1, cmp1);
      i -= count;
      k -= count;
      if (!flag) k += (a[i].value - a[t].value - 1) * t;
    }
    sort(a, a + i + 1, cmp2);
    j = (k) % (i + 1);
    for (int t = 0; t <= i; t++, j++) printf("%d ", a[j % (i + 1)].no);
  }
  return 0;
}
