#include <iostream> using namespace std; #include <math.h> #include <string> #ifndef ONLINE_JUDGE #define getcx getchar #else #define getcx getchar_unlocked #endif #define MOD 100003 int fast_power(long long base, long long n,long long M); int find_inverse_fermat(int n,int M); long long fact(int n,int M); inline int inp ( ) { int n=0; int ch=getcx(); while( ch < '0' || ch > '9' ) { ch=getcx(); } while( ch >= '0' && ch <= '9' ) n = (n<<3)+(n<<1) + ch-'0', ch=getcx(); return n; } int main() { int T, N, K; T = inp(); for (int i=0; i<T; i++) { N = inp(); K = inp(); // Distribute diff items among 7 different groups // Compute C((7+dist-1), dist) int numC = N-K+1; int demC = K; long long answer; if (numC < demC) { answer = 0; } else { long long num = fact(numC, MOD); long long den = (fact(demC, MOD)*fact((numC-demC), MOD))%MOD; long long mult_inverse_denom = find_inverse_fermat(den, MOD); answer = (num * mult_inverse_denom)%MOD; } cout<<answer<<endl; } cin.get(); cin.ignore(); return 0; } int fast_power(long long base, long long n,long long M) { if(n==0) return 1; if(n==1) return base; long long half_result = fast_power(base,n/2,M); if(n%2==0) return ( half_result * half_result ) % M; else return ( ( ( half_result * half_result ) % M ) * base ) % M; } int find_inverse_fermat(int n,int M) { return fast_power(n,M-2,M); } long long fact(int n,int M) { long long result = 1; if (n == 1 || n == 0 || n<0) { return 1; } else { for (int i=n; i>=1; i--) { result = (result*i)%M; } return result; } }