P11250
#include<bits/stdc++.h>
#define int long long
const int mod=1e9+7;
using namespace std;
int C[1009][1009];
int qpow(int a, int p)
{
int ans=1;
while(p>0)
{
if(p&1)
{
ans=(ans*a+mod)%mod;
}
a=(a*a+mod)%mod;
p>>=1;
}
return ans;
}
signed main()
{
int i,j;
C[0][0]=1;
for(i=1;i<=1005;i++)
{
for(j=1;j<=i;j++)
{
C[i][j]=(C[i-1][j]+C[i-1][j-1])%mod;
}
}
int t;
cin>>t;
while(t--)
{
int n,m,k;
cin>>n>>m>>k;
cout<<C[n+1][k+1]*C[n-k+1][m-2*k+1]%mod*qpow(2,m-2*k)%mod<<endl;
}
return 0;
}#include<bits/stdc++.h>
#define int long long
const int mod=1e9+7;
using namespace std;
int C[1009][1009];
int qpow(int a, int p)
{
int ans=1;
while(p>0)
{
if(p&1)
{
ans=(ans*a+mod)%mod;
}
a=(a*a+mod)%mod;
p>>=1;
}
return ans;
}
signed main()
{
int i,j;
C[0][0]=1;
for(i=1;i<=1005;i++)
{
for(j=1;j<=i;j++)
{
C[i][j]=(C[i-1][j]+C[i-1][j-1])%mod;
}
}
int t;
cin>>t;
while(t--)
{
int n,m,k;
cin>>n>>m>>k;
cout<<C[n+1][k+1]*C[n-k+1][m-2*k+1]%mod*qpow(2,m-2*k)%mod<<endl;
}
return 0;
}