#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
const double INF = 1e20;
const double PI = acos(-1.);
const int MXN = 50;
const long long MOD = 1000000007;
long long a[111111];
map<long long, int> S;
map<long long, int>::iterator it;
long long n, k;
long long check(long long t) {
  long long all = 0;
  for (it = S.begin(); it != S.end(); ++it) {
    if ((*it).first >= t)
      all += t * ((*it).second);
    else
      all += ((*it).first) * ((*it).second);
  }
  return all;
}
int main() {
  int i, j;
  while (cin >> n >> k) {
    S.clear();
    long long tot = 0, mx = -1;
    for (i = 1; i <= n; i++) {
      cin >> a[i];
      S[a[i]]++;
      tot += a[i];
      mx = max(mx, a[i]);
    }
    if (tot < k) {
      cout << -1 << endl;
      continue;
    }
    if (tot == k) {
      continue;
    }
    long long l = max(mx / n - 1, 0LL), r = mx;
    while (r >= l) {
      if (r - l <= 1) {
        if (check(r) <= k) l = r;
        break;
      }
      long long mid = (l + r) / 2;
      if (check(mid) <= k)
        l = mid;
      else
        r = mid;
    }
    queue<pair<long long, int> > Q;
    for (i = 1; i <= n; i++)
      if (a[i] > l) Q.push(make_pair(a[i] - l, i));
    k -= check(l);
    while (k--) {
      pair<long long, int> tp = Q.front();
      Q.pop();
      if (tp.first > 1) Q.push(make_pair(tp.first - 1, tp.second));
    }
    while (!Q.empty()) {
      pair<long long, int> tp = Q.front();
      Q.pop();
      cout << tp.second << " ";
    }
    cout << endl;
  }
  return 0;
}
