#include<iostream>
#include<algorithm>
using namespace std;
const int MAX_N=1e5+5;
const int MOD=1e9+7;
typedef long long ll;
int d[MAX_N];
int main(){
	int n,t;
	cin>>n>>t;
	for(int i=0;i<n;i++)cin>>d[i];
	ll ans=1;
	sort(d,d+n);
	for(int i=0;i<n;i++)ans=(ans*(1+i-(lower_bound(d,d+i,d[i]-t)-d))%MOD);
	cout<<ans<<endl;
}