#include <bits/stdc++.h>
using namespace std;
long long k;
int n, v;
struct node {
  int d, index, f;
} e[100010];
int cmpData(const node &a, const node &b);
int cmpIndex(const node &a, const node &b);
void print(int x, int h) {
  int flag = 0;
  sort(e + x, e + n, cmpIndex);
  for (int i = x; i < n; i++) {
    if (!k) {
      if (e[i].d <= h) continue;
      if (e[i].f) return;
      e[i].f = 1;
      if (flag)
        printf(" ");
      else
        flag = 1;
      printf("%d", e[i].index);
    }
    if (k) k--;
    if (i == n - 1) i = x - 1, h++;
  }
}
int main() {
  scanf(
      "%d"
      "%lld",
      &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%d", &e[i].d);
    e[i].index = i + 1;
    e[i].f = 0;
  }
  sort(e, e + n, cmpData);
  int q = 0, h = 0;
  while (true) {
    long long tmp = ((long long)n - q) * (e[q].d - h);
    if (tmp <= k)
      k -= tmp, h = e[q].d;
    else {
      tmp = k / ((long long)n - q);
      h += tmp;
      k -= tmp * ((long long)n - q);
      print(q, h);
      break;
    }
    do {
      q++;
    } while (e[q].d == e[q - 1].d && q < n);
    if (q == n) break;
  }
  if (k) printf("-1");
  printf("\n");
  return 0;
}
int cmpData(const node &a, const node &b) {
  if (a.d == b.d)
    return a.index < b.index;
  else
    return a.d < b.d;
}
int cmpIndex(const node &a, const node &b) { return a.index < b.index; }
