#BK26092606. 积分兑换券

积分兑换券

题目描述

活动中心准备了 nn 种积分兑换券,第 ii 种兑换券的面额为 aia_i。不同种类的兑换券面额互不相同,每种兑换券都有无限多张。

小林希望领取一些兑换券,使这些兑换券的面额总和恰好等于 TT。他可以多次领取同一种兑换券。

请你求出他最少需要领取多少张兑换券。如果无法恰好凑出 TT 积分,输出 −1-1。当 T=0T=0 时,可以不领取任何兑换券,所需张数为 00。

输入格式

第一行两个整数 n,Tn,T,分别表示兑换券种类数和需要凑出的积分。

第二行 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n,表示各类兑换券的面额。

输出格式

输出一行一个整数,表示恰好凑出 TT 积分所需的最少兑换券张数;如果无法凑出,输出 −1-1。

3 6
1 3 4
2
2 7
4 6
-1
3 0
2 5 9
0

样例解释

样例 1 中,领取两张面额为 33 的兑换券,面额总和为 66,所需张数最少。如果先领取一张面额为 44 的兑换券,再领取两张面额为 11 的兑换券,则一共需要 33 张。

样例 2 中,所有兑换券的面额都是偶数,无法凑出 77 积分。

样例 3 中,不领取任何兑换券即可凑出 00 积分。

数据规模与约定

对于 100%100\% 的数据,1≤n≤1001\le n\le100,0≤T≤20000\le T\le2000,1≤ai≤20001\le a_i\le2000,且所有 aia_i 互不相同。

  • 子任务 1(30 分):保证 n≤12n\le12,T≤30T\le30。
  • 子任务 2(30 分):保证 n≤50n\le50,T≤500T\le500。
  • 子任务 3(40 分):没有特殊限制。