本题除了 $N$ 和 $M$ 的数据范围限制外,与“简单硬币问题 (Hard)”完全相同。
Kuong 住在庆熙王国。庆熙王国使用 $N$ 种面值的硬币,分别为 $P_1$ 元、$P_2$ 元,$\cdots$,$P_N$ 元。
奇怪的是,庆熙王国可能存在价值为 $0$ 或负数的硬币。
Kuong 想要购买商品,需要支付恰好 $M$ 元。当然,即使 $M$ 为 $0$ 或负数,也必须支付恰好 $M$ 元。Kuong 拥有无限数量的每种硬币,因此只要存在支付 $M$ 元的方法,他总能支付。
例如,如果需要用 $50$ 元硬币和 $-3$ 元硬币支付 $94$ 元,则所需的最少硬币数量为 $2$ 枚 $50$ 元硬币和 $2$ 枚 $-3$ 元硬币,总共 $4$ 枚。无法用比这更少的硬币数量支付 $94$ 元。
输入格式
第一行给出硬币种类数 $N(0 \le N \le 2)$ 和需要支付的金额 $M(-1\,000 \le M \le 1\,000)$,中间用空格分隔。
第二行给出每种硬币的价值 $P_1, P_2, \cdots, P_N$ $(-1\,000 \le P_i \le 1\,000)$,中间用空格分隔。如果 $N = 0$,则输入中不会给出第二行。
输入的所有数均为整数。
输出格式
输出支付 $M$ 元所需的最少硬币数量。如果无论如何都无法支付 $M$ 元,则输出 $-1$。
样例
样例输入 1
2 94 50 -3
样例输出 1
4
样例输入 2
2 999 2 4
样例输出 2
-1
样例输入 3
1 -5 -1
样例输出 3
5
样例输入 4
0 1
样例输出 4
-1
样例输入 5
2 0 1 -1
样例输出 5
0