ll fac[maxn];
void init()
{
fac[0] = 1;
for(int i = 1; i <= maxn; i++)
fac[i] = fac[i-1] * i % MOD;
return;
}
ll _pow(ll x, ll y)
{
ll res = 1,tmp = x % MOD;
while(y)
{
if(y & 1)
res = res * tmp % MOD;
tmp = tmp * tmp % MOD;
y >>= 1;
}
return res;
}
ll C(ll n, ll m)
{
if(m > n)
return 0;
return fac[n] * _pow(fac[m] * fac[n-m], MOD-2) % MOD;
}
ll lucas(ll n, ll m)
{
if(m == 0)
return 1;
return (C(n%MOD, m%MOD)*lucas(n/MOD, m/MOD))%MOD;
}