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

}