const ll M=1e5+3;
ll fac[100005]; //阶乘
ll inv_of_fac[100005]; //阶乘的逆元
ll qpow(ll x,ll n)
{
ll ret=1;
for(; n; n>>=1)
{
if(n&1) ret=ret*x%mod;
x=x*x%mod;
}
return ret;
}
void init()
{
fac[1]=1;
for(int i=2; i<=M; i++)
fac[i]=fac[i-1]*i%mod;
inv_of_fac[M]=qpow(fac[M],mod-2);
for(int i=M-1; i>=0; i--)
inv_of_fac[i]=inv_of_fac[i+1]*(i+1)%mod;
}
ll C(ll a,ll b)
{
if(b>a) return 0;
if(b==0) return 1;
return fac[a]*inv_of_fac[b]%mod*inv_of_fac[a-b]%mod;
}