#include <bits/stdc++.h>
using namespace std;
struct E {
  long long a, p;
  E() {}
  E(long long _a, long long _p) {
    a = _a;
    p = _p;
  }
};
vector<long long> v;
vector<E> w;
vector<long long> pr;
long long A[200000];
long long N, K;
int main() {
  cin >> N >> K;
  for (long long Ni = 0; Ni < N; Ni++) {
    cin >> A[Ni];
    v.push_back(A[Ni]);
  }
  sort(v.begin(), v.end());
  if (1) {
    long long cnt = 0;
    long long p = N, q = 0;
    for (long long vi = 0, vn = v.size(); vi < vn; vi++) {
      cnt++;
      if (vi == vn - 1 || v[vi] != v[vi + 1]) {
        w.push_back(E(v[vi] - q, p));
        p -= cnt;
        q = v[vi];
        cnt = 0;
      }
    }
  }
  if (1) {
    long long q = 0, _K = K;
    for (long long wi = 0, wn = w.size(); wi < wn; wi++) {
      if (_K < w[wi].a * w[wi].p) {
        q += _K / w[wi].p;
        long long r = _K / w[wi].p;
        _K %= w[wi].p;
        bool flag = false;
        for (long long Ni = 0, Ki = 0; Ni < N; Ni++) {
          if (A[Ni] > q) {
            Ki++;
            if (Ki > _K) {
              if (flag) printf(" ");
              cout << Ni + 1;
              flag = true;
            } else if (A[Ni] > q + 1) {
              pr.push_back(Ni + 1);
            }
          }
        }
        for (long long i = 0, n = pr.size(); i < n; i++) {
          if (flag) printf(" ");
          cout << pr[i];
          flag = true;
        }
        puts("");
        return 0;
      }
      _K -= w[wi].a * w[wi].p;
      q += w[wi].a;
    }
    if (_K) puts("-1");
  }
}
