描述
鬼谷子有$n$个钱袋,编号互不相同,每个钱袋装有金币$a_i$枚。他希望携带总计$m$枚金币的若干袋钱袋出门。
当他需要在街上支付$[1,m]$的任意整数枚的金币时,(他不需要从钱袋中取出金币支付,而是)可以选择其中几个钱袋组合
起来支付。
求有多少种钱袋的方案。两个方案不同,只要存在一个的编号,其中一个方案中有此钱袋编号,另一个方案中没有此钱袋编号。
方案可能很多,只需要输出其对${10}^9+7$模即可。
输入
从文件bag.in中读入数据。第一行包含两个正整数 $n、m$。
第二行包含 $n$ 个整数,表示各个钱袋的金币数$a_i$。
输出
输出到文件bag.out中。输出一个整数,代表满足要求钱袋方案数。
样例
- 复制
- 复制
提示
方案只有1种,就是选择钱币数1、2、3的三个钱袋。
如果需要支付1金币,可以使用钱袋1。
如果需要支付2金币,可以使用钱袋2。
如果需要支付3金币,可以使用钱袋3。
如果需要支付4金币,可以使用钱袋1、3。
如果需要支付5金币,可以使用钱袋2、3。
如果需要支付6金币,可以使用钱袋1、2、3。
如果选择钱袋1和钱袋4,则无法支付2、3、4金币。
对于所有测试数据有:$1\le n\le500,1\le m\le20000,{1\le a}_i\le m$。

关注我们