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

public class Solution {

    public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int cycle = in.nextInt();
		
		long topNum;
		long lowNum;
		for (int i = 0; i < cycle; i++) {
			topNum = in.nextInt();
			lowNum = in.nextInt();
			
			topNum -= (lowNum -1);
			
			if(topNum < lowNum){
				System.out.println(0);
				continue;
			}
			long result = findNum2(topNum,lowNum);
			System.out.println(result);
		}
	}
	
	
	public static long findNum2(long n,long k){
		long min = (n-k > k)?n-k: k;
		long[] num = new long[(int)(n-min)];
		
		for (int i = 0; i < num.length; i++) {
			num[i] = min + i+ 1;
		}
		long size = n - min;
		
		long solution = 1;
		
		BigInteger extra = BigInteger.valueOf(1);
		boolean check = true;
		for (int i = 1; i < size; i++) {
			check = true;
			for (int j = 0; j < num.length; j++) {
				if(num[j]% (i + 1 ) == 0){
					num[j] /= (i+1);
					check = false;
					break;
				}
			}
			
			if(check)
				extra = extra.multiply(BigInteger.valueOf(i+1));
		}
		
		BigInteger x = new BigInteger("1");
		
		for (int i = 0; i < num.length; i++) {
			x = x.multiply(BigInteger.valueOf(num[i]));
		}
		x = x.divide(extra);
		x = x.mod(BigInteger.valueOf(100003));
		
		
		return Long.parseLong(x.toString());
	}
}