import java.util.Arrays;
import java.util.Scanner;

class Solution3 {
	static long[] fact;
	static long[] ifact;
    public static void main(String[] args) {
    	Scanner in = new Scanner(System.in);
    	int mod = 100003;
    	fact = new long[mod];
    	ifact = new long[mod];
    	fact[0] = 1;
    	ifact[0] = 1;
    	for(int i = 1; i < mod; i++) {
    		fact[i] = i * fact[i - 1] % mod;
    		ifact[i] = modInverse(i, mod) * ifact[i - 1] % mod;
    	}
    	int T = in.nextInt();
    	for(int t = 0; t < T; t++) {
    		long N = in.nextLong();
    		long K = in.nextLong();
    		// number of ones = K, number of zeros = N - K
    		// ans = (N - K + 1) choose K
    		// (N - K + 1) choose k
    		long num = N - K + 1;
    		long den = K;
    		System.out.println(modBinomial(num, den, mod));
    	}
    }
    public static long mod(long a, long m) {
      a %= m;
      return a >= 0 ? a : a + m;
    }
    public static long modInverse(long a, long m) {
      a = mod(a, m);
      return a == 0 ? 0 : mod((1 - modInverse(m % a, a) * m) / a, m);
    }
    public static long modBinomial(long n, long k, long p) {
    	long prod = 1;
    	while(n > 0 || k > 0) {
    		int nextN = (int)(n % p);
    		int nextK = (int)(k % p);
    		if(nextN < nextK) { return 0; }
    		prod *= ((fact[nextN] * ifact[nextN - nextK] % p) * ifact[nextK]) % p;
    		n /= p;
    		k /= p;
    	}
    	return prod % p;
    }
}