#include<iostream>
#include<algorithm>
using namespace std;

int main(){
  int n,t;
  int d[100000];
  cin >> n >> t;
  for(int i=0;i<n;i++)cin >> d[i];

  sort(d,d+n);
  long long ans = 1, m = 1000000007;
  for(int i=0;i<n;i++){
    int prv = lower_bound(d,d+n,d[i]-t) - d;
    ans *= i-prv+1; ans %= m;
  }
  cout << ans << endl;
}