#include <bits/stdc++.h>
using namespace std;
template <class T>
bool umin(T& a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool umax(T& a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
int arr[100009], id[100009];
vector<int> adj[100009];
map<int, int> pm;
set<int> s;
int main() {
  int n, c = 0;
  long long k, sum = 0;
  scanf("%d%lld", &n, &k);
  for (int i = 1; i <= n; i++) {
    scanf("%d", arr + i);
    pm[arr[i]] = true;
    sum += arr[i];
  }
  if (sum <= k) {
    if (sum == k)
      puts("");
    else
      puts("-1");
    return 0;
  }
  for (__typeof((pm).begin()) it = (pm).begin(); it != (pm).end(); it++) {
    it->second = ++c;
    id[c] = it->first;
  }
  long long rem = n;
  for (int i = 1; i <= n; i++) {
    adj[pm[arr[i]]].push_back(i);
    s.insert(i);
  }
  for (int i = 1; i <= c; i++) {
    long long cnt = id[i] - id[i - 1];
    if (k > rem * cnt) {
      k -= rem * cnt;
      rem -= adj[i].size();
      for (__typeof((adj[i]).begin()) it = (adj[i]).begin();
           it != (adj[i]).end(); it++)
        s.erase(*it);
      continue;
    }
    vector<int> ans;
    for (__typeof((s).begin()) it = (s).begin(); it != (s).end(); it++)
      ans.push_back(*it);
    if (k <= rem * (cnt - 1)) {
      for (int i = k % rem; i < int(ans.size()); i++) printf("%d ", ans[i]);
      for (int i = 0; i < k % rem; i++) printf("%d ", ans[i]);
    } else {
      int del = k - rem * (cnt - 1);
      int p = 0;
      vector<int> son;
      for (int j = 0; j < int(ans.size()); j++) {
        if (!del) {
          for (int k = j; k < int(ans.size()); k++) printf("%d ", ans[k]);
          break;
        }
        del--;
        if (p < (int)adj[i].size() and adj[i][p] == ans[j]) {
          p++;
          continue;
        }
        son.push_back(ans[j]);
      }
      for (__typeof((son).begin()) it = (son).begin(); it != (son).end(); it++)
        printf("%d ", *it);
    }
    puts("");
    return 0;
  }
  return 0;
}
