import java.util.Scanner; public class E2 { private static long p = 100003; private static long[] inv = new long[100003]; private static void findinv() { inv[0] = 0; inv[1] = 1; for (int i = 2; i < p; i++) { if (inv[i] == 0) { long a = i; long b = p; long xa = 1, xb = 0; long ya = 0, yb = 1; while (a != 0 && b != 0) { if (a > b) { long t = a / b; a -= t * b; xa -= t * ya; xb -= t * yb; } else { long t = b / a; b -= t * a; ya -= t * xa; yb -= t * xb; } } if (a == 0) { if (ya < 0) ya += p; inv[i] = ya; inv[(int) ya] = i; } else { if (xa < 0) xa += p; inv[i] = xa; inv[(int) xa] = i; } } } } public static long pd_2(long l, long r) { long pd = 1; for (long k = l; k <= r; k++) { pd = pd * k % p; } return pd; } public static long comb(long n, long k) { if(n < k) return 0; return pd_2(n-k+1, n) * inv[(int) pd_2(1, k)] % p; } public static void main(String[] args) { findinv(); Scanner sc = new Scanner(System.in); int t = sc.nextInt(); for (int tt = 0; tt < t; tt++) { long n = sc.nextLong(); long k = sc.nextLong(); n = n - k + 1; if (n < k) { System.out.println("0"); continue; } if (n - k < k) { k = n - k; } long res = 1; while(n > 0) { long nn = n % p; long kk = k % p; res = res * comb(nn, kk) % p; n = n / p; k = k / p; } System.out.println(res); } } }