import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

	/*long binomialCoeff(long n, long k)
	{
	    long C[][] = new long[(int)n+1][(int)k+1];
	    int i, j;
	 
	    for (i = 0; i <= n; i++)
	    {
	        for (j = 0; j <= min(i, k); j++)
	        {
	            if (j == 0 || j == i)
	                C[i][j] = (long)1;
	 
	            else
	                C[i][j] = C[i-1][j-1] + C[i-1][j];
	            	C[i][j] = C[i][j] % 100003;
	        }
	    }
	 
	    return C[(int)n][(int)k];
	}*/
    
    long binomialCoeff(long n, int k)
    {
    int C[] = new int[k+1];
    int i, j, res;
 
    C[0] = 1;
 
    for(i = 1; i <= n; i++)
    {
        for(j = min(i, k); j > 0; j--){
            C[j] = C[j] + C[j-1];
            C[j] = C[j] % 100003;
        }    
    }
 
    res = C[k];  // Store the result before freeing memory
 
    //free(C);  // free dynamically allocated memory to avoid memory leak
 
    return res;
    }
    
    /*int computeBin(long n, long k){
        long j = min(n, k);
        if(j == 0 || j == n)
            return 1;
        else
            return (computeBin(n - 1, k - 1) + computeBin(n - 1, k))%100003;
    }*/
	
	int min(int a, int b)
	{
	    return (a<b)? a: b;
	}
	 
	public static void main(String[] args)  
	{  
        Scanner in = new Scanner(System.in);
        int tests = in.nextInt();
        for(int i = 0; i < tests; i++) {
            long N = in.nextLong();
            long K = in.nextLong();
            N = N % 100003;
            K = K % 100003;
		      //int n = 100000, k = 555;
		    Solution s = new Solution();
		    System.out.println(s.binomialCoeff(N - K + 1, (int)K));
        }    
	}  
}