#include <bits/stdc++.h>
using namespace std;
template <class T>
void _print(T arg) {
  cout << arg << " ";
}
template <class... Args>
void log(Args... args) {
  int arr[] = {(_print(args), 0)...};
  cout << endl;
}
const int INF = 0x3f3f3f3f;
const long long inf = 0x3f3f3f3f3f3f3f3f;
const int dir[8][2] = {1, 0, 0, 1, -1, 0, 0, -1, -1, -1, -1, 1, 1, -1, 1, 1};
const long long mod = 1e9 + 7;
const int base = 131;
const double eps = 1e-8;
const double pi = acos(-1.0);
const int N = 1e6 + 10;
const int M = 1e5 + 10;
vector<int> e[N];
int ans = 0;
int n, m;
long long k, a[N];
struct segTree {
  struct node {
    int l, r;
    long long sum;
    long long h;
    long long lazy;
  } t[N << 2];
  void pushUp(int o) {
    t[o].sum = t[(o << 1)].sum + t[(o << 1 | 1)].sum;
    t[o].h = min(t[(o << 1)].h, t[(o << 1 | 1)].h);
  }
  void pushDown(int o) {
    if (t[o].lazy) {
      t[(o << 1)].lazy += t[o].lazy;
      t[(o << 1 | 1)].lazy += t[o].lazy;
      t[(o << 1)].h -= t[o].lazy;
      t[(o << 1 | 1)].h -= t[o].lazy;
      t[o].lazy = 0;
    }
  }
  void build(int o, int l, int r) {
    t[o].l = l, t[o].r = r;
    if (l == r) {
      t[o].h = a[l];
      t[o].sum = 1;
      return;
    }
    int mid = l + r >> 1;
    build((o << 1), l, mid);
    build((o << 1 | 1), mid + 1, r);
    pushUp(o);
  }
  void solve(int o) {
    if (t[o].l == t[o].r) {
      t[o].h = INF;
      t[o].sum = 0;
      return;
    } else {
      pushDown(o);
      if (t[(o << 1)].h <= 0) solve((o << 1));
      if (t[(o << 1 | 1)].h <= 0) solve((o << 1 | 1));
      pushUp(o);
    }
  }
  void update(int o, long long subH) {
    if (t[o].h <= subH) {
      t[o].h -= subH;
      t[o].lazy += subH;
      solve(o);
      return;
    } else {
      t[o].h -= subH;
      t[o].lazy += subH;
      return;
    }
    pushDown(o);
    update((o << 1), subH);
    update((o << 1 | 1), subH);
    pushUp(o);
  }
  int qSum(int o, long long sum) {
    if (t[o].l == t[o].r) return t[o].l;
    if (sum <= t[(o << 1)].sum)
      return qSum((o << 1), sum);
    else
      return qSum((o << 1 | 1), sum - t[(o << 1)].sum);
  }
} seg;
void t1(long long H) {
  for (int i = 1; i <= n; i++) {
    a[i] -= H;
    cout << max(a[i], 0ll) << " \n"[i == n];
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0), cout.tie(0);
  cin >> n >> k;
  long long sum = 0;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    sum += a[i];
  }
  if (k > sum) {
    cout << -1 << endl;
    return 0;
  } else if (k == sum) {
    return 0;
  }
  seg.build(1, 1, n);
  long long H = 0;
  while (1) {
    long long tmp = seg.t[1].h * seg.t[1].sum;
    if (k >= tmp) {
      k -= tmp;
      H += seg.t[1].h;
      seg.update(1, seg.t[1].h);
    } else {
      tmp = k / seg.t[1].sum;
      k -= tmp * seg.t[1].sum;
      seg.update(1, tmp);
      H += tmp;
      break;
    }
  }
  if (seg.t[1].sum) {
    int pos = seg.qSum(1, k + 1);
    H++;
    for (int i = pos; i <= n; i++) {
      if (a[i] >= H) {
        cout << i << " ";
      }
    }
    H++;
    for (int i = 1; i < pos; i++) {
      if (a[i] >= H) {
        cout << i << " ";
      }
    }
  }
  return 0;
}
