AT_wupc2019_j Color Ball

Description

[problemUrl]: https://atcoder.jp/contests/wupc2019/tasks/wupc2019_j \\(N\\) 本の全て色が異なる筒があり、それぞれに筒と同じ色のボールが \\(a\_1\\), \\(a\_2\\), ..., \\(a\_N\\)個入っています。全ての筒に入っているボールを合わせると \\(M\\) 個です。 筒の幅はボールちょうど1つ分です。空である筒はないものとします。 アヤコさんは次のような遊びを思いつきました。以下の条件を満たすように、筒からボールを出して入れ直すというものです。 - 各筒に入っているボールの数が初期状態から変化していないこと。 - 各筒に入っているボールの色は、その筒の色と異なること。 条件を満たすようなボールの入れ方は何通りあるでしょうか。\\(10^9+7\\) で割った余りを求めてください。 ただし、同色のボール同士の区別はしませんが、筒に入っているボールの色の順番を区別するものとします。

Input Format

入力は以下の形式で標準入力から与えられる。 ``` \(N\) \(M\) \(a_1\) \(a_2\) \(\dots\) \(a_N\) ```

Output Format

問題の答えを1行に出力せよ。

Explanation/Hint

### 制約 - \\(1 \\leq N \\leq 2000\\) - \\(1 \\leq M \\leq 2000\\) - \\(1 \\leq a\_i \\leq M\\) - \\(\\sum a\_i = M\\) - 入力される値はすべて整数である。 ### Sample Explanation 1 条件を満たすのは2つのボールを下図のように入れ替えるパターンのみなので、答えは1通りです。 !\[\](https://img.atcoder.jp/wupc2019/j\_sample1\_98ba0shj8amur03y.png) ### Sample Explanation 2 下図のように、答えは4通りです。 !\[\](https://img.atcoder.jp/wupc2019/j\_sample2\_mhbk98uaz6yz1525.png) ### Sample Explanation 3 どのようにボールを入れても条件を満たすことができません。