#include<bits/stdc++.h>#defineintlonglongusingnamespace std;constint mod =1e9+7, N =1e6+10;int f[N], d[N];intqpow(int b,int e){int a =1ll;while(e){if(e &1) a = a * b % mod;
b = b * b % mod;
e >>=1;}return a;}signedmain(){
f[0]= d[0]=1;for(int i =1; i <= N; i ++)
f[i]=1ll* f[i -1]* i % mod,
d[i]=(1ll* d[i -1]* i +(i %2? mod -1:1))% mod;int t;scanf("%lld",&t);while(t --){int n, m;scanf("%lld%lld",&n,&m);int C =1ll* f[n]*qpow(f[m], mod -2)% mod *qpow(f[n - m], mod -2)% mod;printf("%lld\n",1ll* C * d[n - m]% mod);}}