AT_code_festival_2018_quala_d 通勤

Description

[problemUrl]: https://atcoder.jp/contests/code-festival-2018-quala/tasks/code_festival_2018_quala_d 高橋くんの家は $ x $ 軸上の点 $ 0 $ に、AtCoder 社のオフィスは $ x $ 軸上の点 $ D $ にあります。 また、$ x $ 軸上には $ N $ 個のガソリンスタンドがあり、これらの座標は $ X_1,\ X_2,\ ...,\ X_N $ です。 高橋くんは毎日家からオフィスまで自動車で移動します。 この自動車の燃料タンクの容量は $ F $ リットルであり、距離 $ 1 $ 移動するごとに燃料を $ 1 $ リットル消費します。 高橋くんは燃料タンクが満タンの状態で家を出発し、ガソリンスタンドを通るごとに以下のようにして自動車の燃料を補給します。 - 燃料が $ T $ リットル以上残っている場合、燃料を補給しない。 - そうでない場合、燃料タンクが満タンになるまで燃料を補給する。 オフィスへの移動の際、自動車は $ x $ 軸正方向にしか進むことができません。ガソリンスタンドでもオフィスでもない場所で燃料タンクが空になった場合、オフィスへの移動は失敗となります。 あなたは $ N $ 個のガソリンスタンドのうちのいくつか ($ 0 $ 個でも構いません) を書店に建て替えようとしています。 書店に建て替えるガソリンスタンドの集合であって、建て替えのあとも高橋くんが上記の方法で家からオフィスまで自動車で移動できるようなものの個数を $ 10^9\ +\ 7 $ で割ったあまりを求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ D $ $ F $ $ T $ $ N $ $ X_1 $ $ X_2 $ $ ... $ $ X_N $

Output Format

答えを出力せよ。

Explanation/Hint

### 制約 - $ 0\