#include<iostream>
#include<algorithm>
#include<cstdio>
#define mod 1000000007
#define M 100005
using namespace std;
int T;
long long fac[M],dp[M],infac[M];
inline long long know(long long a,long long b){
register long long ans=1,base=a;
while(b){
if(b&1)ans=(ans*base)%mod;
base=(base*base)%mod;
b>>=1;
}
return ans%mod;
}
inline long long C(long long n,long long m){
return fac[n]*infac[m]%mod*infac[n-m]%mod;
}
void init(){
fac[0]=fac[1]=1;
dp[0]=dp[1]=0;dp[2]=1;
for(register int i=2;i<=M;++i)fac[i]=(fac[i-1]*i)%mod;
infac[M-1]=know(fac[M-1],mod-2);
for(register int i=M-2;i>=0;--i)infac[i]=infac[i+1]*(i+1)%mod;
for(register int i=3;i<=M;++i)dp[i]=((i-1)*dp[i-1]+(i-1)*dp[i-2])%mod;
}
int main(){
init();
register long long n,m;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
printf("%lld\n",dp[n-m]*C(n,m)%mod);
}
}