#include using namespace std; typedef long long ll; const ll mod=1e9+7; const int N=1e6+10; ll C[N]; ll qpow(ll a,ll b) { ll ans=1; for(; b; b>>=1) { if(b&1) ans=ans*a%mod; a=a*a%mod; } return ans; } void calc(ll m,ll n) { C[0]=1; for(int i=1; i<=n; i++) C[i]=C[i-1]*(m-i+1)%mod*qpow(i,mod-2)%mod; } int main() { int T,t=0,n,m,k; scanf("%d",&T); while(T--) { scanf("%d%d%d",&n,&m,&k); calc(m,k); ll part1=C[k],part2=0; calc(k,k); ll sign=1; for(int i=k; i; i--,sign=-sign) part2=(part2+(sign*i*qpow(i-1,n-1))%mod*C[i]%mod+mod)%mod; printf("Case #%d: %lld\n",++t,part1*part2%mod); } return 0; }