#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
#define MOD 100003

// Combinations, for large n, k, pulled from stackoverflow
long long degree(long long a, long long k, long long p) {
  long long res = 1;
  long long cur = a;

  while (k) {
    if (k%2) {
      res = (res * cur)%p;
    }
    k /= 2;
    cur = (cur * cur) % p;
  }
  return res;
}
int get_degree(long long n, long long p) { // returns the degree with which p is in n!
  int degree_num = 0;
  long long u = p;
  long long temp = n;
  while (u <= temp) {
    degree_num += temp/u;
    u *= p;
  }
  return degree_num;
}

long long combinations(int n, int k, long long p) {
  int num_degree = get_degree(n,p) - get_degree(n- k,p);
  int den_degree = get_degree(k,p);
  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 % p == 0) {
      ti /= p;
    }
    res = (res *ti)%p;
  }
  long long denom = 1;
  for (long long i = 1; i <= k; ++i) {
    long long ti = i;
    while(ti % p == 0) {
      ti /= p;
    }
    denom = (denom * ti)%p;
  }
  res = (res * degree(denom, p-2, p)) % p;
  return res;
}
int main() {
    int t;
    cin >> t;
    long long int N, K, m, n, temp;

    //long long choose[MOD+1][MOD+1];
    vector< vector<long long> > choose;

    for(int i=0; i<t; i++)
    {
        cin >> N >> K;

        m = N-K+1;
        n = N-K-K+1;

        if(n < 0 || m < n)
            cout << 0 << endl;
        else 
        {
            cout << combinations(m, n, MOD) << endl;
        }
        
    }
    
    
    return 0;
}