1427. 凑硬币

给出一个总数,再给出不同面值的硬币若干枚,请问如何用最少的硬币凑够这个总数。

如,我们现在有面值为1元、3元、5元的硬币若干枚,如何用最少的硬币凑够11元?

输入

第一行输入一个正整数 amount ,表示要凑够的数额。

第二行输入一个正整数n,表示持有多少种硬币。

第三行输入n 个数,第 i 个数表示该种硬币的面值。

输出

最少要用多少枚硬币。如果无解则输出 -1

样例

标准输入 复制文本
11
3
1 2 3
标准输出 复制文本
4
标准输入 复制文本
1
1
5
标准输出 复制文本
-1

提示

样例 1:最少使用3枚面值为3元的硬币,和1枚面值为2元的硬币

样例 2:因为无论如何都不能凑出 1 元,所以无解,输出 -1 。

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 17
通过 15