#include<bits/stdc++.h>
#define int long long
#define N 2000005
#define mod 1000000007
using namespace std;
int T, n;
int f[N], g[N], jc[N];
int Pow(int a, int n) {
if(n == 0) return 1;
if(n == 1) return a % mod;
int x = Pow(a, n / 2);
if(n % 2 == 0) return x * x % mod;
return x * x % mod * a % mod;
}
int inv(int x){
return Pow(x % mod, mod - 2);
}
int C(int n, int m) {
return jc[n] * inv(jc[m]) % mod * inv(jc[n - m]) % mod;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
jc[0] = 1;
for(int i = 1; i <= 1000000; i++) jc[i] = (jc[i - 1] * i) % mod;
f[1] = 0;
g[1] = 1;
for(int i = 2; i <= 1000000; i++) {
f[i] = (i - 1) * g[i - 1] % mod;
g[i] = ((i - 1) * g[i - 1] % mod + f[i - 1]) % mod;
}
cin >> T;
while(T--) {
int n, m;
cin >> n >> m;
cout << C(n, m) * f[n - m] % mod << endl;
}
return 0;
}