#include <bits/stdc++.h>
using namespace std;
priority_queue<pair<int, int>, vector<pair<int, int> >,
               greater<pair<int, int> > >
    Heap;
int n, PT[100005];
long long m;
bool mark[100005];
int main() {
  int x, y, zz;
  scanf("%d%I64d", &n, &m);
  long long gaotot = 0;
  for (int i = 0; i < n; i++) {
    scanf("%d", &x);
    gaotot += x;
    Heap.push(make_pair(x, i));
  }
  if (gaotot < m)
    puts("-1");
  else {
    long long tot = 0;
    long long anscount = 0;
    memset(mark, true, sizeof(mark));
    while (!Heap.empty()) {
      y = Heap.top().first;
      x = y - tot;
      long long luangao = x;
      luangao = luangao * Heap.size();
      if (luangao <= m) {
        tot += x;
        long long temp = x;
        temp = temp * Heap.size();
        while ((!Heap.empty()) && Heap.top().first == y) {
          mark[Heap.top().second] = false;
          Heap.pop();
        }
        m -= temp;
      } else {
        long long gao = m / Heap.size();
        tot += gao;
        gao = gao * Heap.size();
        m -= gao;
        for (int i = 0; i < n; i++) {
          if (mark[i]) m--;
          if (m < 0) {
            zz = i;
            break;
          };
        }
        while ((!Heap.empty()) && Heap.top().first - tot == 1) {
          if (Heap.top().second < zz) mark[Heap.top().second] = false;
          Heap.pop();
        }
        for (int i = zz; i < n; i++)
          if (mark[i]) {
            anscount++;
            PT[anscount] = i;
          }
        for (int i = 0; i < zz; i++)
          if (mark[i]) {
            anscount++;
            PT[anscount] = i;
          }
        while (!Heap.empty()) Heap.pop();
      }
    }
    if (anscount == 0)
      puts("");
    else {
      for (int i = 1; i < anscount; i++) printf("%d ", PT[i] + 1);
      printf("%d\n", PT[anscount] + 1);
    }
  }
}
