#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long ll;
const int mod=1e9+7;
ll f[100005],a[100005],A,B;
int n,pre[100005],sum[100005];
int main(){
	scanf("%d%lld%lld",&n,&A,&B);
	for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
	a[++n]=5e18;
	pre[1]=1;
	for(int i=2;i<n;i++){
		pre[i]=pre[i-1];
		while(a[i+1]-a[pre[i]]>=B&&pre[i]<i) pre[i]++;
	}
	for(int i=2;i<=n;i++) sum[i]=sum[i-1]+(a[i]-a[i-1]<A);
	for(int i=1;i<n;i++){
		if(sum[i]-sum[pre[i]]) pre[i]=n+1;
	}
	ll sum=1;f[0]=1;
	for(int i=1,L=1;i<=n;i++){
		if(i>2&&a[i-1]-a[i-2]<B) sum=0,L=i-2;
		while(a[i]-a[L]>=A&&L<i-1) sum=(sum+f[pre[L]])%mod,L++;
		f[i]=sum;
		if(i>1&&a[i]-a[i-1]>=A) f[i]=(f[i]+f[i-1])%mod;
	}
	printf("%lld",f[n]);
	return 0;
}