#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <map> using namespace std; long long n, k; typedef long long LL; const int MOD = 100003;//????? int exGcd(int a, int b, int &x, int &y) { if (b == 0) { x = 1, y = 0; return a; } else { int res = exGcd(b, a % b, x, y); int t = x; x = y; y = (t - a / b % MOD * y % MOD + MOD) % MOD; return res; } } long long a[MOD], ng[MOD]; void init() { a[0] = 1; for (int i = 1; i < MOD; i++) a[i] = a[i-1] * i % MOD; ng[1] = 1; for (int i = 2; i < MOD; i++) { int x, y; exGcd(i, MOD, x, y); ng[i] = x; } } long long calc(long long n, long long m) { // n,m < MOD if (m > n) return 0; else return a[n] * ng[a[m]] % MOD * ng[a[n - m]] % MOD; } int CC(long long n, long long m) { return calc(n / MOD / MOD, m / MOD / MOD) * calc(n / MOD % MOD, m / MOD % MOD) % MOD * calc(n % MOD, m % MOD) % MOD; } int main() { init(); int cases; scanf("%d", &cases); for (int T = 0; T < cases; T++) { scanf("%lld %lld", &n, &k); printf("%d\n", CC(n - (2 * k - 1) + k, k)); } }