#P1026. 零钱兑换

零钱兑换

题目描述

给定 nn 种硬币,每种硬币有无限多枚,第 ii 种硬币的面值为 cic_i。

现在要用这些硬币凑出总金额 mm 元,问最少需要多少枚硬币?

如果无论如何都无法凑出 mm 元,则输出 −1-1。

输入格式

第一行包含两个整数 nn 和 mm,分别表示硬币种类数和目标金额。

第二行包含 nn 个整数 c1,c2,…,cnc_1, c_2, \dots, c_n,表示每种硬币的面值。

输出格式

输出一个整数,表示凑出 mm 元所需的最少硬币数。

如果无法凑出,输出 −1-1。

样例

4 15
1 5 10 20
2
3 17
5 8 11
-1

样例解释

最优方案为:10+5=1510 + 5 = 15,共使用 22 枚硬币。

数据范围

  • 1≤n≤1001 \le n \le 100
  • 1≤m≤100001 \le m \le 10000
  • 1≤ci≤100001 \le c_i \le 10000