#include #include #include #include #include #include #include #define N_MAX 2000002 using namespace std; typedef long long ll; const ll MOD = 1000000007; ll inv[N_MAX],fac[N_MAX],finv[N_MAX]; void init(){ fac[0]=fac[1]=1; finv[0]=finv[1]=1; inv[1]=1; for(int i=2;i> N >> M >> D1 >> D2; M--; M -= D1*(N-1); ll D = D2-D1; ll ans = 0; for(ll i = 0; i <= N-1; i++){ ll m = M-(D+1)*i; if(i%2 == 0){ ans += (comb(m+N, N)*comb(N-1, i))%MOD; ans %= MOD; }else{ ans -= (comb(m+N, N)*comb(N-1, i))%MOD; ans %= MOD; } } ans += MOD; ans %= MOD; cout << ans << endl; }