Задача 1D. Печать документа

Автор:ONTI   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:512 Мб
Выходной файл:Стандартный выход  
Максимальный балл:20  

Условие

На складе канцелярских товаров хранится M различных пачек бумаги, в каждой из которых содержится Xi листов, причeм на складе хранится ровно по две пачки бумаги с одинаковым количеством листов. На склад поступил запрос о выдаче бумаги для печати итогового отчeта, содержащего ровно N листов. Напишите программу, которая поможет сотрудникам склада определить, смогут ли они выдать ровно столько бумаги, сколько необходимо для печати этого документа.

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

На вход программы сначала поступает число N , количество листов в итоговом отчeте (1 ≤ N ≤ 109), затем - число M (1 ≤ M ≤ 15) и далее M попарно различных чисел X1, X2, ..., XM (1 ≤ XI ≤ 109).

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

Сначала выведите K - количество пачек, которое придется передать со склада канцелярских товаров, если суммарно в этих пачках будет N листов бумаги. Далее выведите K чисел, задающих количество листов в каждой из пачек, которые требуется передать в отдел. Если решений несколько, выведите вариант, в котором придeтся передать минимальное количество пачек. Если таких вариантов несколько, выведите любой из них.

Если выдать бумагу со склада так, чтобы в отделе после печати документа не осталось лишней бумаг, то выведите одно число 0. Если же на складе канцелярских товаров не хватит бумаги для печати документа выведите одно число −1.

Примеры тестов

Стандартный вход Стандартный выход
1
108 7
45 35 12 4 3 1 931751396
5
45 35 12 12 4
2
7 2
1 2
-1
3
5 2
3 4
0

0.074s 0.008s 13