//https://www.hackerrank.com/contests/infinitum-apr14/challenges/manasa-and-combinatorics/editorial #include<iostream> #include<vector> using namespace std; #define MOD 100003 long long int fact[400001]; long long int pwr(long long int a , long long int b) { if(b==0) return 1; if(b==1) return a; if(b%2 == 0) { long long int temp = pwr(a,b/2); return (temp*temp)%MOD; } else { long long int temp = pwr(a,b/2); temp = (temp*temp)%MOD; return (temp*a)%MOD; } } long long SmallC(long long int N, long long int R) { long long int a = fact[N]; long long int b = fact[R]; long long int c = fact[N-R]; a = (a*pwr(b,MOD-2) )%MOD; a = (a*pwr(c,MOD-2) )%MOD; return a; } long long Lucas( long long int n,long long int m) { if (n==0 && m==0) return 1; long long int ni = n % MOD; long long int mi = m % MOD; if (mi>ni) return 0; return Lucas(n/MOD, m/MOD) * SmallC(ni, mi); } int main() { fact[0] = 1; for(long long int i=1 ; i<=400000 ; i++) fact[i] = (fact[i-1]*i)%MOD; long long int n,T,k; cin>>T; while(T--) { cin>>n >> k; long long int outp = Lucas(n-k+1,k); cout<<(MOD+outp%MOD)%MOD<<endl; } return 0; }