mod = 10**9+7 comb_num = 10**7 + 2 F = [1] * comb_num F_ = [1] * comb_num for i in range(2, comb_num): F[i] = F[i-1]*i%mod F_[-1] = pow(F[-1], -1, mod) for i in range(comb_num-1, 0, -1): F_[i-1] = F_[i]*i%mod def comb(a, b): if 0 <= b <= a: return F[a] * F_[b] * F_[a-b] % mod else: return 0 n, m, d0, d1 = list(map(int, input().split())) m0 = m - 1 - d0 * (n-1) ans = 0 for k in range(n): ans = (ans + comb(m0+n-(d1-d0+1)*k, n) * comb(n-1, k) * pow(-1, k)) % mod print(ans)