#pragma GCC optimize "O3" #include using namespace std; typedef long long ll; typedef long double ld; typedef pair ii; typedef vector vi; typedef vector vii; #define FOR(i,b,e) for(int i=b; i<=e; i++) #define FORD(i,b,e) for(int i=b; i>=e; i--) #define SIZE(x) ((int)x.size()) #define pb push_back #define st first #define nd second #define sp ' ' #define ent '\n' const int mod=1e9+7; const int N=1010; int memo[N][N]; int binom(int n, int k){ if(n<0 || k<0 || k>n) return 0; if(memo[n][k]!=-1) return memo[n][k]; if(k==0 || k==n) return memo[n][k]=1; return memo[n][k]=(binom(n-1, k)+binom(n-1, k-1))%mod; } void solve(){ memset(memo, -1, sizeof(memo)); ll ans=0; int a, b, k, c; cin>>a>>b>>k>>c; if(a==c && b==c){ cout<