#arc110d. [arc110_d]Binomial Coefficient is Fun

[arc110_d]Binomial Coefficient is Fun

問題文

長さが NN の非負整数列 AA があります。

長さが NN で、和が MM 以下である任意の非負整数列 BB について、prodi=1NdbinomBiAi\\prod _{i = 1} ^N \\dbinom{B_i}{A_i} の値を計算し、その総和を 109+710^9 + 7 で割った余りを出力してください。

ここで dbinomBiAi\\dbinom{B_i}{A_i} は、BiB_i 個のものの中から AiA_i 個のものを選ぶ場合の数(二項係数)であり、Bi<AiB_i < A_i のときは 00 です。

制約

  • 入力は全て整数
  • 1leqNleq20001 \\leq N \\leq 2000
  • 1leqMleq1091 \\leq M \\leq 10^9
  • 0leqAileq20000 \\leq A_i \\leq 2000

入力

入力は以下の形式で標準入力から与えられる。

NN MM A1A_1 A2A_2 ldots\\ldots ANA_N

出力

prodi=1NdbinomBiAi\\prod _{i = 1} ^N \\dbinom{B_i}{A_i} の総和を 109+710^9 + 7 で割った余りを出力せよ。


入力例 1

3 5
1 2 1

出力例 1

8

prodi=1NdbinomBiAi\\prod _{i = 1} ^N \\dbinom{B_i}{A_i}11 以上となるような数列 BB の定め方は、以下の 44 通りです。

  • B=1,2,1B = 1, 2, 1 とする。このとき $\\prod _{i = 1} ^N \\dbinom{B_i}{A_i} = \\dbinom{1}{1} \\times \\dbinom{2}{2} \\times \\dbinom{1}{1} = 1$ である

  • B=2,2,1B = 2, 2, 1 とする。このとき $\\prod _{i = 1} ^N \\dbinom{B_i}{A_i} = \\dbinom{2}{1} \\times \\dbinom{2}{2} \\times \\dbinom{1}{1} = 2$ である

  • B=1,3,1B = 1, 3, 1 とする。このとき $\\prod _{i = 1} ^N \\dbinom{B_i}{A_i} = \\dbinom{1}{1} \\times \\dbinom{3}{2} \\times \\dbinom{1}{1} = 3$ である

  • B=1,2,2B = 1, 2, 2 とする。このとき $\\prod _{i = 1} ^N \\dbinom{B_i}{A_i} = \\dbinom{1}{1} \\times \\dbinom{2}{2} \\times \\dbinom{2}{1} = 2$ である

よって答えは 1+2+3+2=81 + 2 + 3 + 2 = 8 です。


入力例 2

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

出力例 2

642612171