#include <bits/stdc++.h>
using namespace std;
void add(long long* fenwick, int x, int N, long long v) {
  for (; x <= N; x += (x & (-x))) fenwick[x] += v;
}
long long query(long long* fenwick, int x) {
  long long sum = 0;
  for (; x >= 1; x -= (x & (-x))) sum += fenwick[x];
  return sum;
}
int main() {
  long long N, K;
  scanf("%lld%lld", &N, &K);
  long long fenwick[N + 1];
  for (int i = 0; i <= N; i++) fenwick[i] = 0;
  priority_queue<long long> Q;
  unordered_map<long long, int> frq;
  for (int i = 0; i < N; i++) {
    long long a;
    scanf("%lld", &a);
    add(fenwick, i + 1, N, a);
    add(fenwick, i + 2, N, -a);
    frq[a]++;
    Q.push(-a);
  }
  long long n = N;
  long long last = 0;
  while (!Q.empty()) {
    long long act = Q.top();
    while (!Q.empty() && Q.top() == act) Q.pop();
    if (K >= n && n > 0) {
      long long times = min(K / n, -act + last);
      add(fenwick, 1, N, -times);
      K -= n * times;
      if (times == -act + last) n -= frq[-act];
      last = act;
    }
  }
  if (K > 0 && n == 0)
    printf("-1");
  else {
    queue<int> q1, q2;
    for (int i = 1; i <= N; i++) {
      long long q = query(fenwick, i);
      if (q > 1 && K > 0)
        q1.push(i);
      else if (q > 0 && K <= 0)
        q2.push(i);
      if (q > 0) K--;
    }
    while (!q2.empty()) {
      printf("%d ", q2.front());
      q2.pop();
    }
    while (!q1.empty()) {
      printf("%d ", q1.front());
      q1.pop();
    }
  }
  return 0;
}
