#include <bits/stdc++.h>
using namespace std;
string alpha = "abcdefghijklmnopqrstuvwxyz";
int MOD = 1000000007;
const int N = 100100;
int GCD(long long num, long long ones) {
  return !ones ? num : GCD(ones, num % ones);
}
long long lcm(long long a, long long b) { return (a / GCD(a, b)) * b; }
int n, arr[N];
bool ok[N];
long long k;
void Print(int x) {
  for (int i = x + 1; i < n; ++i)
    if (ok[i]) printf("%d ", i + 1);
  for (int i = 0; i <= x; ++i)
    if (ok[i]) printf("%d ", i + 1);
}
int main() {
  priority_queue<pair<int, int>, vector<pair<int, int> >,
                 greater<pair<int, int> > >
      pq;
  scanf("%d", &n);
  scanf("%lld", &k);
  long long tot = 0;
  for (int i = 0; i < n; ++i)
    scanf("%d", &arr[i]), pq.push({arr[i], i}), ok[i] = 1;
  int cur = n;
  long long neg = 0;
  while (!pq.empty()) {
    int x = pq.top().first;
    int mn = x - neg;
    if (mn * 1LL * cur <= k) {
      k -= (mn * 1LL * cur);
      while (!pq.empty() && pq.top().first == x)
        ok[pq.top().second] = 0, cur--, pq.pop();
    } else {
      mn = min(mn - 1LL, k / cur);
      k -= (mn * 1LL * cur);
      if (!k) Print(-1);
      for (int i = 0; i < n && k; ++i) {
        if (ok[i]) k--;
        if (arr[i] - neg - mn - 1 == 0) ok[i] = 0;
        if (!k) Print(i);
      }
      break;
    }
    neg = x;
  }
  if (k) puts("-1");
  return 0;
}
