编程题
### 问题描述
小李拥有 $n$ 种面值不同的硬币,对于每一种硬币,他都有无限个,但是,小李希望每次支付一样东西时,使用最少的硬币,否则会麻烦到自己;同时他也希望自己支付的硬币总面值刚好等于他要买的商品的价格,否则会麻烦到别人。现在他需要支付一件价格为 $k$ 的商品,请问他最少需要拿出多少个硬币?如果他无法刚好买到这件商品,则输出 $-1$ 。
### 输入格式
第一行给出两个整数 $n$ 和 $k$ ,表示硬币种类数和商品价格。
接下来一行输入 $n$ 个整数,表示每种硬币的面值 $a_i$ 。
### 输出格式
如果他可以刚好买到这件商品,则输出他需要支付的硬币的最少数量,如果他无法刚好买到这件商品,则输出 $-1$ 。
### 样例输入
```txt
3 11
1 2 5
```
### 样例输出
```txt
3
```
### 评测数据规模
对于所有测评数据: $1 \le n,k \le 10^5$ , $0 \le a_i \le 10^5$ 。