#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200001;
long long a[MAXN], sm = 0;
int main() {
  long long n, k;
  cin >> n >> k;
  set<pair<long long, int> > st;
  vector<int> v;
  deque<int> ddq;
  bool check = false;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    sm += a[i];
    if (sm >= k) check = true;
    st.insert({a[i], i});
  }
  if (!check) {
    cout << -1;
    return 0;
  }
  while (!ddq.empty()) {
    cout << ddq.front() << ' ';
    ddq.pop_front();
  }
  long long remain = n;
  long long iter = 0;
  while (true) {
    while (st.begin()->first - iter <= 0 && !st.empty()) {
      st.erase(st.begin());
      remain--;
    }
    if (st.empty()) {
      cout << "";
      return 0;
    }
    long long jter = st.begin()->first - iter;
    if (jter * remain <= k) {
      k -= jter * remain;
      iter += jter;
    } else {
      long long lo = 0;
      long long hi = jter;
      long long can = lo;
      while (lo <= hi) {
        long long mid = (lo + hi) / 2;
        if (mid * remain < k) {
          can = mid;
          lo = mid + 1;
        } else
          hi = mid - 1;
      }
      k -= can * remain;
      iter += can;
      while (!st.empty()) {
        if (st.begin()->first - iter > 0) {
          v.push_back(st.begin()->second);
        }
        st.erase(st.begin());
      }
      sort(v.begin(), v.end());
      deque<int> dq;
      for (int i = 0; i < v.size(); i++) {
        dq.push_back(v[i]);
      }
      for (int i = 0; i < k; i++) {
        int ft = dq.front();
        dq.pop_front();
        a[ft]--;
        if (a[ft] - iter > 0) dq.push_back(ft);
      }
      while (dq.size()) {
        cout << dq.front() << " ";
        dq.pop_front();
      }
      break;
    }
  }
  return 0;
}
