#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> #include <limits.h> #define inttype unsigned long long #define MOD 100003 long long degree(long long a, long long k) { long long res = 1; long long cur = a; while (k != 0) { if (k % 2) { res = (res * cur) % MOD; } k /= 2; cur = (cur * cur) % MOD; } return res; } int get_degree(long long n) { int degree_num = 0; long long u = MOD; long long temp = n; while (u <= temp) { degree_num += temp/u; u *= MOD; } return degree_num; } long long combinations(int n, int k) { int num_degree = get_degree(n) - get_degree(n- k); int den_degree = get_degree(k); if (num_degree > den_degree) { return 0; } long long res = 1; for (long long i = n; i > n- k; --i) { long long ti = i; while(ti % MOD == 0) { ti /= MOD; } res = (res *ti) % MOD; } long long denom = 1; for (long long i = 1; i <= k; ++i) { long long ti = i; while(ti % MOD == 0) { ti /= MOD; } denom = (denom * ti)%MOD; } res = (res * degree(denom, MOD-2)) % MOD; return res; } int main() { int N; scanf("%d", &N); while (N--) { int n,k; scanf("%d%d", &n, &k); inttype N = n - (k-1); inttype K = k; if (2*k == n+1) { printf("1\n"); continue; } if (2*k > n) { printf("0\n"); continue; } if (N-K < K) K = N-K; printf("%llu\n", combinations(N,K)); } return 0; }