逆元求组合数
void init(){
fac[0]=1;
for(int i=1;i<maxn;i++){
fac[i]=fac[i-1]*i%mod;
}
inv[1]=1;
for(int i=2;i<maxn;i++){
inv[i]=(mod-mod/i)*inv[mod%i]%mod;
}
inv[0]=1;
for(int i=1;i<maxn;i++){
inv[i]=inv[i-1]*inv[i]%mod;
}
}
ll C(ll a,ll b){
return fac[a]*inv[b]%mod*inv[a-b]%mod;
}