#include <bits/stdc++.h>
using namespace std;
#define MOD 1000003
typedef long long int ll;
ll arr[1000000+10];
ll cal[1000000+10];
ll factorial_mod(ll value, ll counter) {
if(counter == 0) return 1;
ll ans;
ans = 1;
for(ll i = 1; i <= counter; i++){
ans = ((ans % MOD) * (value % MOD)) % MOD;
value--;
}
return ans;
}
ll bigMod(ll base, ll power, ll mod) {
if(power == 0) return 1;
if(power == 1) return base;
if(power % 2 == 0) {
ll value = bigMod(base,power/2,mod) % mod;
return (value * value) % mod;
}
if(power % 2 == 1) {
ll value = bigMod(base,power-1,mod) % mod;
return ((base % mod) * (value)) % mod;
}
}
int main(void)
{
ll T,t;
scanf("%lld",&T);
arr[1] = 1;
arr[0] = 1;
arr[2] = 2;
for(ll i = 3; i <= 1000000; i++){
arr[i] = ((arr[i-1] % MOD) * (i % MOD)) % MOD;
}
for(ll i = 0; i <= 1000000; i++){
cal[i] = -1;
}
for(t = 1; t <= T; t++){
ll n,r;
scanf("%lld %lld",&n,&r);
ll lob = arr[n];
ll hor = arr[r];
if(cal[r] == -1) {
hor = bigMod(hor,MOD-2,MOD);
cal[r] = hor;
}
else {
hor = cal[r];
}
ll baki = arr[n-r];
if(cal[n-r] == -1) {
baki = bigMod(baki,MOD-2,MOD);
cal[n-r] = baki;
}
else {
baki = cal[n-r];
}
ll ans = ((((lob % MOD) * (hor % MOD)) % MOD ) * (baki % MOD)) % MOD;
printf("Case %lld: %lld\n",t,ans);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgTU9EIDEwMDAwMDMKCgp0eXBlZGVmIGxvbmcgbG9uZyBpbnQgbGw7CmxsIGFyclsxMDAwMDAwKzEwXTsKbGwgY2FsWzEwMDAwMDArMTBdOwoKbGwgZmFjdG9yaWFsX21vZChsbCB2YWx1ZSwgbGwgY291bnRlcikgewoKICBpZihjb3VudGVyID09IDApIHJldHVybiAxOwogIGxsIGFuczsKICBhbnMgPSAxOwogIGZvcihsbCBpID0gMTsgaSA8PSBjb3VudGVyOyBpKyspewogICAgYW5zID0gKChhbnMgJSBNT0QpICogKHZhbHVlICUgTU9EKSkgJSBNT0Q7CiAgICB2YWx1ZS0tOwogIH0KICByZXR1cm4gYW5zOwp9CgpsbCBiaWdNb2QobGwgYmFzZSwgbGwgcG93ZXIsIGxsIG1vZCkgewogIGlmKHBvd2VyID09IDApIHJldHVybiAxOwogIGlmKHBvd2VyID09IDEpIHJldHVybiBiYXNlOwogIGlmKHBvd2VyICUgMiA9PSAwKSB7CiAgICBsbCB2YWx1ZSA9IGJpZ01vZChiYXNlLHBvd2VyLzIsbW9kKSAlIG1vZDsKICAgIHJldHVybiAodmFsdWUgKiB2YWx1ZSkgJSBtb2Q7CiAgfQogIGlmKHBvd2VyICUgMiA9PSAxKSB7CiAgICBsbCB2YWx1ZSA9IGJpZ01vZChiYXNlLHBvd2VyLTEsbW9kKSAlIG1vZDsKICAgIHJldHVybiAoKGJhc2UgJSBtb2QpICogKHZhbHVlKSkgJSBtb2Q7CiAgfQp9CgoKCgppbnQgbWFpbih2b2lkKQp7CiAgICBsbCBULHQ7CiAgICBzY2FuZigiJWxsZCIsJlQpOwogICAgYXJyWzFdID0gMTsKICAgIGFyclswXSA9IDE7CiAgICBhcnJbMl0gPSAyOwogICAgZm9yKGxsIGkgPSAzOyBpIDw9IDEwMDAwMDA7IGkrKyl7CiAgICAgICAgYXJyW2ldID0gKChhcnJbaS0xXSAlIE1PRCkgKiAoaSAlIE1PRCkpICUgTU9EOwogICAgfQogICAgZm9yKGxsIGkgPSAwOyBpIDw9IDEwMDAwMDA7IGkrKyl7CiAgICAgICAgY2FsW2ldID0gLTE7CiAgICB9CiAgICBmb3IodCA9IDE7IHQgPD0gVDsgdCsrKXsKICAgICAgICBsbCBuLHI7CiAgICAgICAgc2NhbmYoIiVsbGQgJWxsZCIsJm4sJnIpOwogICAgICAgIGxsIGxvYiA9IGFycltuXTsKICAgICAgICBsbCBob3IgPSBhcnJbcl07CiAgICAgICAgaWYoY2FsW3JdID09IC0xKSB7CiAgICAgICAgaG9yID0gYmlnTW9kKGhvcixNT0QtMixNT0QpOwogICAgICAgIGNhbFtyXSA9IGhvcjsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGhvciA9IGNhbFtyXTsKICAgICAgICB9CiAgICAgICAgbGwgYmFraSA9IGFycltuLXJdOwogICAgICAgIGlmKGNhbFtuLXJdID09IC0xKSB7CiAgICAgICAgYmFraSA9IGJpZ01vZChiYWtpLE1PRC0yLE1PRCk7CiAgICAgICAgY2FsW24tcl0gPSBiYWtpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgYmFraSA9IGNhbFtuLXJdOwogICAgICAgIH0KICAgICAgICBsbCBhbnMgPSAoKCgobG9iICUgTU9EKSAqIChob3IgJSBNT0QpKSAlIE1PRCApICogKGJha2kgJSBNT0QpKSAlIE1PRDsKICAgICAgICBwcmludGYoIkNhc2UgJWxsZDogJWxsZFxuIix0LGFucyk7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=