B. Доктор
ограничение по времени на тест
2 seconds
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

В очереди к доктору Айболиту стоят n животных. Когда животное заходит в кабинет, доктор его осматривает, выписывает рецепты, назначает анализы, и, возможно, назначает дополнительный прием. Доктор отлично знаком со всеми животными в лесу, и поэтому точно знает, что животное номер i в очереди должно будет посетить его кабинет ровно ai раз. Мы будем считать, что осмотр занимает гораздо больше времени, чем сдача анализов и других дополнительных процедур, и поэтому будем считать, что как только животное покидает кабинет, оно сразу же встает в конец очереди к доктору. Разумеется, если животное уже побывало у доктора необходимое количество раз, то вставать еще раз в очередь ненужно, и оно сразу же уходит домой.

Доктор планирует уйти домой после того, как завершит прием k животных, и поэтому ему важно, как будет выглядеть очередь в этот момент. Так как у доктора очень длинный рабочий день, да и вообще, отвлекаться ему некогда, то он попросил вас выяснить это.

Входные данные

В первой строке входных данных записаны через пробел два целых числа n и k (1 ≤ n ≤ 105, 0 ≤ k ≤ 1014). Во второй строке заданы через пробел целые числа a1, a2, ..., an (1 ≤ ai ≤ 109).

Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать потоки cin, cout (также вы можете использовать спецификатор %I64d).

Выходные данные

Если доктор осуществит в сумме меньше чем k приемов, то выведите единственное число «-1» (без кавычек). Иначе выведите последовательность чисел — номера животных в порядке, в котором они стоят в очереди.

Обратите внимание, что эта последовательность может быть пустой. Этот случай присутствует в претестах. Вы можете ничего не выводить или выводить один символ конца строки. Оба варианта будут засчитаны за правильный ответ.

Примеры
Входные данные
3 3
1 2 1
Выходные данные
2 
Входные данные
4 10
3 3 2 1
Выходные данные
-1
Входные данные
7 10
1 3 3 1 2 3 1
Выходные данные
6 2 3 
Примечание

Объяснение первого примера:

  • До приема: {1, 2, 3}
  • После первого приема: {2, 3}
  • После второго приема: {3, 2}
  • После третьего приема: {2}

Объяснение второго примера:

  • До приема: {1, 2, 3, 4, 5, 6, 7}
  • После первого приема: {2, 3, 4, 5, 6, 7}
  • После второго приема: {3, 4, 5, 6, 7, 2}
  • После третьего приема: {4, 5, 6, 7, 2, 3}
  • После четвертого приема: {5, 6, 7, 2, 3}
  • После пятого приема: {6, 7, 2, 3, 5}
  • После шестого приема: {7, 2, 3, 5, 6}
  • После седьмого приема: {2, 3, 5, 6}
  • После восьмого приема: {3, 5, 6, 2}
  • После девятого приема: {5, 6, 2, 3}
  • После десятого приема: {6, 2, 3}