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