#include <bits/stdc++.h>
using namespace std;
template <typename S, typename T>
void fill_(S& buf, T x) {
  fill(reinterpret_cast<T*>(&buf),
       reinterpret_cast<T*>(&buf) + sizeof(buf) / sizeof(T), x);
}
template <typename T, int N>
inline int countof(const T (&)[N]) {
  return N;
}
template <typename T>
inline vector<T>& operator+=(vector<T>& ret, const T& x) {
  ret.push_back(x);
  return ret;
}
vector<long long> xs;
long long maxAnimals(const long long a) {
  long long acc = 0;
  for (int i = int(0), CNT_i = int(int((xs).size())); i < CNT_i; ++i)
    acc += min(a, xs[i]);
  return acc;
}
int main(int argc, char* argv[]) {
  long long N, K;
  cin >> N >> K;
  xs.assign(int(N), 0);
  for (int i = int(0), CNT_i = int(N); i < CNT_i; ++i) {
    if (!(cin >> xs[i])) return 0;
  }
  long long sum = accumulate((xs).begin(), (xs).end(), 0LL);
  if (sum <= K) {
    if (sum < K) cout << -1 << endl;
    return 0;
  }
  long long l = 0, r = 1000000001;
  while (r - l > 1) {
    const long long m = (l + r) / 2;
    if (maxAnimals(m) <= K) {
      l = m;
    } else {
      r = m;
    }
  }
  K -= maxAnimals(l);
  for (int i = int(0), CNT_i = int(N); i < CNT_i; ++i)
    xs[i] = max(0LL, xs[i] - l);
  int k = 0;
  for (; K > 0; ++k)
    if (xs[k % N]) {
      --xs[k % N];
      --K;
    }
  bool b = false;
  for (int i = int(0), CNT_i = int(N); i < CNT_i; ++i)
    if (xs[(i + k) % N]) {
      if (b) cout << " ";
      b = true;
      cout << (i + k) % N + 1;
    }
  cout << endl;
  return 0;
}
