Здачі немає! 1#4071

Здачі немає! 1

1 секунда
128 мегабайтів
Легка

Ваня запізнюється на автобуси, які їдуть в ЛКШ. На жаль, йому недостатньо просто встигнути на автобус — по дорозі йому ще потрібно купити подарунок дівчині Каті, у якої скоро день народження. По дорозі йому зустрівся магазин, де він може придбати подарунок. Подарунок коштує монет. У Вані в гаманці є купюр, але у продавця немає здачі, і тому Ваня повинен набрати потрібну суму без здачі. Більше того, у Вані дуже мало часу, гроші потрібно дістати якомога швидше, і тому Ваня хоче дати продавцю потрібну суму мінімальною кількістю купюр.

Допоможіть йому зробити це.

Вхідні дані

Перший рядок вхідного файлу містить три цілих невід'ємних числа: , та (0 \leq n \leq 1000, 0 \leq c \leq 1000, 1 \leq k \leq 1000000000). Далі йде чисел a_1, a_2, \ldots, a_n (1 \leq a_i \leq 1000) — номінали купюр у тому порядку, як вони лежать у Вані в гаманці.

Вихідні дані

У перший рядок вихідного файлу виведіть одне число — мінімальну кількість купюр, якими Ваня може набрати потрібну суму. У другий рядок виведіть чисел — номери купюр, які повинен дати продавцю Ваня. Вані потрібно буде діставати купюри послідовно з гаманця, тому номери повинні бути виведені у зростаючому порядку.

Якщо набрати необхідну суму без здачі неможливо, то виведіть у вихідний файл одне число .

Вані без різниці, як набирати потрібну суму. Тому якщо є декілька розв'язків, то можете вивести довільний. Ваша програма може не звертати увагу на число .

Приклади

Приклад 1

Loading
Loading

Приклад 3

Loading
Loading

Примітка

У першому прикладі усі можливі варіанти розв'язку, відсортовані у лексикографічному порядку наступні:

  • (перша та друга купюри, тобто купюри номіналом та )

  • (друга та п'ята купюри, тобто купюри номіналом та )

  • (третя та четверта купюри, тобто купюри номіналом та )

Ви можете вивести довільний з цих варіантів.