https://vjudge.net/contest/278754#problem/K
#include<cstdio>
#define ll unsigned long long
using namespace std;
const int mod = 1e9+7;
ll t,ii,i,n,k,ans,sum,q,now;
int main()
{
scanf("%llu",&t);
for (ii=1; ii<=t; ii++)
{
scanf("%llu%llu%llu",&n,&k,&q);
if(n < k)
{
ans = 1;
for(i = 1; i <= n; i++)
ans = ans*i%q;
printf("Case #%llu: %llu\n",ii,ans);
continue;
}
ans = 1;
for(i = 1; i <= k; i++)
ans = ans*i%q;
now = (n-k-1+q)%q;
sum = 1+now*now%q;
sum%=q;
sum=sum+(k*(((n-k)%q+q)%q)%q)%q;
sum=(sum+(n-k-1))%q;
ans=ans*sum%q;
printf("Case #%llu: %llu\n",ii,ans);
}
}