#include <iostream>
using namespace std;
long long p=1e9+7;
long long w[500005];
long long k[500005];

long long re(long long a,long long b,long long c){

long long d=1;
a=a%c;
while(b){
    if(b&1)
d=(a%c*(d%c))%c;
a=(a%c*(a%c))%c;
b>>=1;



}

return d%c;



}
long long hh(long long a,long long b){
if(a==1){
    return a%b;
}
return (a%b)*hh(a-1,b);



}
int main(){
    w[0]=1;
    for(int i=1;i<=500000;i++){
w[i]=w[i-1]*i%p;
    }
    k[0]=1;
    for(int i=1;i<=500000;i++){
long long it=re(i,p-2,p);
k[i]=k[i-1]*it%p;



    }
int t;
cin>>t;
while(t--){
long long n,m;
cin>>n>>m;
cout<<(w[m]*k[n])%p*k[m-n]%p<<endl;

}





    return 0;
}