#CSES1665. 编程公司

编程公司

题目背景

翻译自 CSES-1665 题。

题目描述

你的公司有 nn 名程序员,每个程序员的技能等级在 00100100 之间。你的任务是将这些程序员分成若干个团队,使得他们能够顺利地一起工作。

根据你的经验,当程序员的技能水平相差不大时,团队工作会更加顺利。因此,创建一个团队的惩罚是团队中最强和最弱程序员的技能等级差。

你需要计算有多少种方法可以将这些程序员分成若干个团队,使得所有团队的惩罚之和不超过 xx

输入格式

第一行包含两个整数 nnxx,分别表示程序员的数量和最大允许的惩罚总和。

第二行包含 nn 个整数 t1,t2,,tnt_1, t_2, \dots, t_n,表示每个程序员的技能等级。

输出格式

输出一个整数,表示有效的分组方式数目,结果对 109+710^9 + 7 取模。

样例

3 2
2 5 3
3

说明/提示

1n1001 \leq n \leq 100

0x50000 \leq x \leq 5000

0ti1000 \leq t_i \leq 100