一道计数题
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给你一个长度为n的自然数序列A和一个正数m

你需要计算对于所有满足条件的序列B 的累加和。(其中C为组合数)

结果对(109+7)取余

序列B需满足的条件:

1.序列B只包含自然数且长度为n

2.序列B中所有数的累加和小于等于m

输入描述:

第一行读入两个正整数n,m (1<=n<=5000,1<=m<=109)

第二行读入n个整数Ai(0<=Ai<=2000)

输出描述:

输出一个数表示结果
示例1

输入

复制
3 5
1 2 1

输出

复制
8
示例2

输入

复制
10 998244353
31 41 59 26 53 58 97 93 23 84

输出

复制
642612171