#include<stdio.h>#include<string.h>#define N 100100#define mod 100000007#define ll long longll ex_gcd(ll a,ll b,ll &x,ll &y){ if (b==0) {x=1;y=0;return a;} ll gcd=ex_gcd(b,a%b,x,y); ll t=x; x=y;y=t-a/b*x; return gcd;}ll ins(ll m){ ll x,y; ex_gcd(m,mod,x,y); return (x%mod+mod)%mod;}ll c(int n,int m){ ll up=1,down=1; int i,j; m=m>n-m?n-m:m; for (i=0;i<m;++i) { up=(up*(n-i))%mod; down=(down*(i+1))%mod; } return (up*ins(down))%mod;}int main (){ int m,n,p,q; int i,j,k; ll all,cat; while (scanf("%d%d%d%d",&m,&n,&p,&q)!=EOF) { all=(c(m+n,m)*c(m-p+q,q))%mod; cat=(c(m+q,m)*c(m-p+n,n))%mod; printf("%lldn",((all-cat)%mod+mod)%mod); } return 0;}