#include <iostream>
using namespace std;
#include <math.h> 
#include <string>
#ifndef ONLINE_JUDGE
    #define getcx getchar
#else
    #define getcx getchar_unlocked
#endif
#define MOD 100003
 
int fast_power(long long base, long long n,long long M);
int find_inverse_fermat(int n,int M);
long long fact(int n,int M);
 
inline int inp ( )
{
   int n=0;
   int ch=getcx();
   while( ch < '0' || ch > '9' )
   {
     ch=getcx();
   }
   while(  ch >= '0' && ch <= '9' )
       n = (n<<3)+(n<<1) + ch-'0', ch=getcx();
   return n;
}
 
int main()
{
	int T, N, K;
	T = inp();
	for (int i=0; i<T; i++)
	{
        N = inp();
    	K = inp();
        // Distribute diff items among 7 different groups
        // Compute C((7+dist-1), dist)
        int numC = N-K+1;
        int demC = K;
        long long answer;
        if (numC < demC)
        {
           answer = 0;
        }
        else 
        {
           long long num = fact(numC, MOD);
           long long den = (fact(demC, MOD)*fact((numC-demC), MOD))%MOD; 
           long long mult_inverse_denom = find_inverse_fermat(den, MOD);
           answer = (num * mult_inverse_denom)%MOD;
        }    
        cout<<answer<<endl;
     }
        cin.get();
    	cin.ignore();
    	return 0; 	
} 
 
 
int fast_power(long long base, long long n,long long M)
{
    if(n==0)
       return 1;
    if(n==1)
    return base;
    long long half_result = fast_power(base,n/2,M);
    if(n%2==0)
        return ( half_result * half_result ) % M;
    else
        return ( ( ( half_result * half_result ) % M ) * base ) % M;
}
 
int find_inverse_fermat(int n,int M)
{
    return fast_power(n,M-2,M);
}
 
 
long long fact(int n,int M)
{ 
    long long result = 1;
    if (n == 1 || n == 0 || n<0)
    {
        return 1;
    }
    else
    {
        for (int i=n; i>=1; i--)
        {
            result = (result*i)%M;
        }
        return result;
    }
}