AT_dwacon6th_prelims_e Span Covering

Description

[problemUrl]: https://atcoder.jp/contests/dwacon6th-prelims/tasks/dwacon6th_prelims_e ニワンゴ君は半開区間 $ [0,X) $ で表される土地を購入しました。 ニワンゴ君はこの土地に $ N $ 枚のシートを敷くことにしました。シートには $ 1,2,\ \ldots,\ N $ と番号が振られており、これらは区別されます。 シート $ i $ は、$ 0\ \leq\ j\ \leq\ X\ -\ L_i $ を満たす整数 $ j $ を選んで $ [j,\ j\ +\ L_i) $ を覆うように敷くことができます。 $ [0,X) $ にシートに覆われていない座標が存在しないようなシートの敷き方の総数を $ 10^9+7 $ で割ったあまりを求めてください。 ただし、$ 2 $ つの敷き方が異なるとは、整数 $ i(1\ \leq\ i\ \leq\ N) $ であって、シート $ i $ が覆っている領域が異なるものが存在することを指します。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ X $ $ L_1 $ $ L_2 $ $ \ldots $ $ L_N $

Output Format

答えを出力せよ。

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 100 $ - $ 1\ \leq\ L_i\ \leq\ X\ \leq\ 500 $ - 入力中の値はすべて整数 ### Sample Explanation 1 \- 区間全体が覆われているかどうかを無視すると、シートの敷き方の総数は $ 18 $ 通り考えられます。 - そのうち、$ [0,1) $ が覆われないような敷き方が $ 4 $ 通り、$ [2,3) $ が覆われないような敷き方が $ 4 $ 通りあります。 - それ以外の敷き方は $ [0,3) $ を全てシートで覆うことができるので、答えは $ 10 $ 通りです。 ### Sample Explanation 2 \- 敷き方の総数を $ 10^9+7 $ で割ったあまりを求めてください。