#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100000;
const int mod = 1e9+7;
using ll = long long;
ll fact[MAXN + 1] , ifact[MAXN + 1];
ll power(ll base , ll exp){
int res = 1;
while(exp>0){
if(exp%2 == 1)res = (res*base)%mod;
base = (base*base)%mod;
exp/=2;
}
return res;
}
void pre(){
fact[0]=ifact[0]=1;
for(int i = 1 ; i<=MAXN ;i++){
fact[i] = (fact[i-1]*i)%mod;
}
ifact[MAXN] = power(fact[MAXN],mod-2);
for(int i = MAXN - 1; i>=0 ;i--){
ifact[i] = (ifact[i+1]*(i+1))%mod;
}
}
ll nCr(int n,int r){
if(r>n || r<0)return 0;
return (((fact[n]*ifact[r])%mod)*ifact[n-r])%mod;
}
int main() {
pre();
int t,n,r;
cin>>t;
while(t--){
cin>>n>>r;
cout<<nCr(n,r)<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBNQVhOID0gMTAwMDAwOwpjb25zdCBpbnQgbW9kID0gMWU5Kzc7CnVzaW5nIGxsID0gbG9uZyBsb25nOwpsbCBmYWN0W01BWE4gKyAxXSAsIGlmYWN0W01BWE4gKyAxXTsKCmxsIHBvd2VyKGxsIGJhc2UgLCBsbCBleHApewoJaW50IHJlcyA9IDE7Cgl3aGlsZShleHA+MCl7CgkJaWYoZXhwJTIgPT0gMSlyZXMgPSAocmVzKmJhc2UpJW1vZDsKCQliYXNlID0gIChiYXNlKmJhc2UpJW1vZDsKCQlleHAvPTI7Cgl9CglyZXR1cm4gcmVzOwp9Cgp2b2lkIHByZSgpewoJZmFjdFswXT1pZmFjdFswXT0xOwoJZm9yKGludCBpID0gMSA7IGk8PU1BWE4gO2krKyl7CgkJZmFjdFtpXSA9IChmYWN0W2ktMV0qaSklbW9kOwoJfQoJaWZhY3RbTUFYTl0gPSBwb3dlcihmYWN0W01BWE5dLG1vZC0yKTsKCWZvcihpbnQgaSA9IE1BWE4gLSAxOyBpPj0wIDtpLS0pewoJCWlmYWN0W2ldID0gKGlmYWN0W2krMV0qKGkrMSkpJW1vZDsKCX0KfQoKbGwgbkNyKGludCBuLGludCByKXsKCWlmKHI+biB8fCByPDApcmV0dXJuIDA7CglyZXR1cm4gKCgoZmFjdFtuXSppZmFjdFtyXSklbW9kKSppZmFjdFtuLXJdKSVtb2Q7Cn0KaW50IG1haW4oKSB7CiAgIHByZSgpOwogICBpbnQgdCxuLHI7CiAgIGNpbj4+dDsKICAgd2hpbGUodC0tKXsKICAgCWNpbj4+bj4+cjsKICAgCWNvdXQ8PG5DcihuLHIpPDxlbmRsOwogICB9CiAgIHJldHVybiAwOwp9