#include <stdio.h>
#include <stdlib.h>

#define mygc(c) (c)=getchar_unlocked()
#define mypc(c) putchar_unlocked(c)

void reader(long long *x){ int k, m = 0; *x = 0; for (;;){ mygc(k); if (k == '-'){ m = 1; break; }if ('0' <= k&&k <= '9'){ *x = k - '0'; break; } }for (;;){ mygc(k); if (k<'0' || k>'9')break; *x = (*x) * 10 + k - '0'; }if (m)(*x) = -(*x); }
void writer(int x, char c){ int sz = 0, m = 0; char buf[10]; if (x<0)m = 1, x = -x; while (x)buf[sz++] = x % 10, x /= 10; if (!sz)buf[sz++] = 0; if (m)mypc('-'); while (sz--)mypc(buf[sz] + '0'); mypc(c); }

#define mod (100003LL)

long long factorials[mod], inverses[mod], powers[mod];

void factorial(long long n, long long *out1, long long *out2) {
    *out1 = 1, *out2 = 0;
    while (n) {
        long long d = n / mod;
        if (d % 2) *out1 *= -1;
        *out1 = ((*out1)*factorials[n % mod]) % mod;
        *out2 += d;
        n = d;
    }
}

int main() {
    int i;
    long long T, N, K, nn, np, dn, dp, out1, out2;
    reader(&T);

    powers[0] = factorials[0] = 1;
    for (i = 1; i < mod; i++) {
        powers[i] = (powers[i - 1] * 2) % mod;
        factorials[i] = (factorials[i - 1] * i) % mod;
        if (i >= mod - i - 1) {
            inverses[powers[i]] = powers[mod - i - 1];
            inverses[powers[mod - i - 1]] = powers[i];
        }
    }

    for (i = 0; i < T; i++) {
        reader(&N);
        reader(&K);
        if (N - K + 1 < K) {
            puts("0");
            continue;
        }
        nn = dn = 1, np = dp = 0;
        factorial(N - K + 1, &out1, &out2);
        nn = (nn*out1) % mod;
        np += out2;
        factorial(K, &out1, &out2);
        dn = (dn*out1) % mod;
        dp += out2;
        factorial(N - 2*K + 1, &out1, &out2);
        dn = (dn*out1) % mod;
        dp += out2;
        if (np > dp) puts("0");
        else {
            if (dn < 0) dn += mod;
            nn = (nn*inverses[dn]) % mod;
            if (nn < 0) nn += mod;
            writer((int)nn, '\n');
        }
    }

    return 0;
}