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