AlvinZH凭着惊人的手速,快速做完了1021实验(不快不行sad)。看看时间竟然才过去一个小时,于是他开始继续玩他的砝码。
AlvinZH桌子上已经有一个天平和一些砝码,AlvinZH认为如果在天平两端都放置砝码,需要做减法,那太复杂了,他决定在天平一端只放置物品,另一端只放置砝码。
AlvinZH现在想称得从[1~m]之间的每个整数质量的物品,但他发现现有的砝码不够用,假设AlvinZH可以从实验箱里找到各种质量的砝码,请你帮他计算一下最少需要寻找多少个砝码。
输入包括多组数据。
每组数据第一行为初始砝码数n和想称得的最大质量m(0≤n≤1000,1≤m≤INT32_MAX)。
接下来一行包含n个数字,为现有的砝码的质量 mi (1 ≤ mi ≤ INT32_MAX)。
对于每组数据,输出一行,为需要寻找的最小砝码数。
2 6
1 3
3 5
1 2 2
3 20
1 5 10
1
0
2
样例一:初始只能称得[1]、[3]、[1+3],并不能称得[1~6]之间的所有质量,只需要寻找一个质量为2的砝码就可以了。([1]、[2]、[3]、[1+3]、[2+3]、[1+2+3])。
样例二:初始可以称得[1]、[2]、[1+2]、[2+2]、[1+2+2],不需要寻找新的砝码。
样例三:初始可以称得[1]、[5]、[1+5]、[1+10]、[5+10]、[1+5+10],需要寻找质量为2和4的砝码就ok。
最小数目一定存在,但是方法可能不同。