#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:16777216")
using namespace std;
int n;
long long k;
int a[100000];
pair<int, int> d[100000];
vector<pair<int, int> > mans;
void solution() {
  cin >> n >> k;
  long long tot = 0;
  for (int i = 0, _n = (n); i < _n; ++i) {
    scanf("%d", a + i);
    tot += a[i];
    d[i] = pair<int, int>(a[i], i);
  }
  if (tot < k) {
    puts("-1");
    return;
  }
  sort(d, d + n);
  long long left = n;
  long long process = 0;
  int cur = 0;
  for (int i = 0; i < n; i++) {
    int v = d[i].second;
    int times = d[i].first;
    long long process2 = process + (times - cur) * left;
    if (process2 > k) {
      for (int j = 0; j < n; j++)
        if (a[j] > cur) mans.push_back(pair<int, int>(a[j] - cur, j));
      if ((int)((mans).size())) {
        long long add = k - process;
        long long D = add / (int)((mans).size());
        add %= (int)((mans).size());
        for (int j = 0; j < (int)((mans).size()); j++) mans[j].first -= D;
        for (int j = 0; j < add; j++)
          if (mans[j].first > 1)
            mans.push_back(pair<int, int>(mans[j].first - 1, mans[j].second));
        for (int j = add; j < (int)((mans).size()); j++)
          printf("%d ", mans[j].second + 1);
      }
      puts("");
      break;
    } else {
      process = process2;
    }
    left--;
    cur = times;
  }
}
int main() {
  solution();
  return 0;
}
