const int N =1e5+4; int fac[N] ,fm[N]; inline int kpow(int a, int b) { int res = 1; for (; b; b >>= 1) { if (b & 1) res = res * a % mod; a = a * a % mod; } return res; } void getInv() { fac[0]= fm[0] = 1; for (int i = 1; i <= 10000; ++i) { fac[i] = fac[i - 1] * i % mod; fm[i] = kpow(fac[i], mod - 2); } } inline int C(int n, int m) { if (n < 0 || m < 0 || n < m) return 0; return fac[n] * fm[m] % mod * fm[n - m] % mod; }