EduBrick

E. Какие купюры

2000 мс · 256 МБ · всё или ничего

Банкомат выдаёт сумму ss банкнотами nn номиналов, запас каждого неограничен. Нужно не только наименьшее число банкнот, но и сами банкноты.

Представлений с наименьшим числом банкнот может быть несколько. Выведите номиналы в порядке невозрастания, а среди всех минимальных представлений — лексикографически наибольшее. Проще говоря: на каждом шаге берите самую крупную банкноту, с которой остаток ещё раскладывается на оставшееся число банкнот.

Формат ввода

Первая строка содержит число nn (1≤n≤1001 \le n \le 100).

Вторая строка содержит nn различных натуральных чисел, не превосходящих 10510^5, — номиналы.

Третья строка содержит натуральное число ss (1≤s≤1051 \le s \le 10^5).

Формат вывода

Если выдать сумму невозможно, выведите −1-1.

Иначе в первой строке выведите количество банкнот, во второй — сами номиналы по невозрастанию.

Примеры

ввод
5
1 3 7 12 32
40
вывод
3
32 7 1
ввод
2
4 6
7
вывод
-1
Войдите, чтобы отправлять решения.