[JOI Open 2016] 摩天大楼

题目背景

**译自 [JOI Open 2016](https://contests.ioi-jp.org/open-2016/index.html) T3 「高層ビル街 / Skyscraper」**

题目描述

将互不相同的 $N$ 个整数 $A_1, A_2, \cdots, A_N$ 按照一定顺序排列。 假设排列为 $f_1, f_2, \cdots, f_N$,要求:$| f_1 - f_2| + | f_2 - f_3| + \cdots + | f_{N-1} - f_N| \leq L$。 求满足题意的排列的方案数对 $10^9+7$ 取模后的结果。

输入输出格式

输入格式


输入共两行。 第一行有两个整数 $N, L$。 第二行有 $N$ 个整数 $A_1, A_2, \cdots, A_N$。

输出格式


输出共一行一个整数,表示方案数对 $10^9+7$ 取模后的结果。

输入输出样例

输入样例 #1

4 10
3 6 2 9

输出样例 #1

6

输入样例 #2

8 35
3 7 1 5 10 2 11 6

输出样例 #2

31384

说明

### 样例 1 解释 满足条件的六种方案分别为: $$ \begin{matrix} 2\ 3\ 6\ 9,& |2 - 3| + |3 - 6| + |6 - 9| &=& 7 \\ 2\ 3\ 9\ 6,& |2 - 3| + |3 - 9| + |9 - 6| &=& 10 \\ 3\ 2\ 6\ 9,& |3 - 2| + |2 - 6| + |6 - 9| &=& 8 \\ 6\ 9\ 3\ 2,& |6 - 9| + |9 - 3| + |3 - 2| &=& 10 \\ 9\ 6\ 2\ 3,& |9 - 6| + |6 - 2| + |2 - 3| &=& 8 \\ 9\ 6\ 3\ 2,& |9 - 6| + |6 - 3| + |3 - 2| &=& 7 \\ \end{matrix} $$ ### 数据规模与约定 **本题采用捆绑测试。** 对于所有数据,$1\le N\le 100$,$1\le L\le 1000$,$1\le A_i\le 1000$。 - Subtask 1(5 points):$N\le 8$。 - Subtask 2(15 points):$N\le 14$,$L\le 100$。 - Subtask 3(80 points):没有额外限制。