LL fact[N],infact[N],inv[N];
void init(){
fact[0]=infact[0]=1;
inv[1]=1,inv[0]=1;
for(int i=2;i<N;i++){
inv[i]=(mod-mod/i)%mod*(inv[mod%i])%mod;
}
for(int i=1;i<N;i++){
fact[i]=fact[i-1]*i%mod;
infact[i]=infact[i-1]*inv[i]%mod;
}
}
LL C(LL a,LL b){
if(b<0||a<b)return 0;
return fact[a]*infact[a-b]%mod*infact[b]%mod;
}