fac[0]=fac[1]=1;
for(int i=2;i<=MAXN;i++)fac[i]=fac[i-1]*i%mod;
inv[MAXN]=quipow(fac[MAXN],mod-2);
for(int i=MAXN;i>0;i--)inv[i-1]=inv[i]*i%mod;