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()); } }