//https://www.hackerrank.com/contests/infinitum-apr14/challenges/manasa-and-combinatorics/editorial
#include<iostream>
#include<vector>

using namespace std;

#define MOD 100003

long long int fact[400001];

long long int pwr(long long int a , long long int b)
{
    if(b==0)
        return 1;
    if(b==1)
        return a;
    if(b%2 == 0)
    {
        long long int temp = pwr(a,b/2);
        return (temp*temp)%MOD;
    }
    else
    {
        long long int temp = pwr(a,b/2);
        temp =  (temp*temp)%MOD;
        return (temp*a)%MOD;
    }
}

long long SmallC(long long int N, long long int R)
{
    long long int a = fact[N];
    long long int b = fact[R];
    long long int c = fact[N-R];
    a = (a*pwr(b,MOD-2) )%MOD;
    a = (a*pwr(c,MOD-2) )%MOD;
    return a;
}

long long Lucas( long long int n,long long int m)
{
    if (n==0 && m==0) return 1;
    long long  int ni = n % MOD;
    long long  int mi = m % MOD;
    if (mi>ni) return 0;
    return Lucas(n/MOD, m/MOD) * SmallC(ni, mi);
}


int main()
{
    fact[0] = 1;
    for(long long int i=1 ; i<=400000 ; i++)
        fact[i] = (fact[i-1]*i)%MOD;
    long long int n,T,k;
    cin>>T;
    while(T--)
    {
             cin>>n >> k;
             long long int outp =  Lucas(n-k+1,k);
                           
                           cout<<(MOD+outp%MOD)%MOD<<endl;
    }
    return 0;
}