Problem

8 /10


硬币

Problem

在魔法之地,使用面额为 A1、A2、...、AM 的硬币。魔术师来到店里,发现自己的每种面额正好有两枚硬币。他需要支付金额N。写一个程序判断他是否可以不找零地支付。

输入
在程序的输入端 首先是数字 N (1 <= N <= 109),然后是数字 M (1 <= M <= 15),然后是 M 个成对不同的数字 A 1 , A2,..., AM (1 <= Ai <= 10 9 ).

印记
首先打印出K——魔术师如果能够不找零地支付指定的金额就必须给出的硬币数量。然后打印定义硬币价值的 K 个数字。如果有多个解决方案,请打印魔术师给出的硬币数量最少的变体。如果有多个这样的选项,打印其中的任何一个。

如果你不能没有零钱,那么打印一个数字 0。如果魔术师没有足够的钱来支付指定的金额,打印一个数字 -1(减一)。
  <正文>
输入 输出
100 6
11 20 30 40 11 99
3
40 30 30