#include <iostream>
using namespace std;
typedef long long ll;
// Cách tính thứ 3: tam giác Pascal
// - nCk = (n - 1)Ck + (n - 1)C(k - 1)
// - còn cái ô ở toạ độ (n, k) trong tam giác Pascal có giá trị = nCk
const int N = 1e3 + 5;
const int MOD = 1e9 + 7;
int C[N][N]; // C[i][j] = iCj
// Chi phí bộ nhớ: O(n^2)
// Chi phí precompute: O(n^2)
// Chi phí tính nCk: O(1)
void precompute() {
for (int i = 0; i < N; i++) {
C[i][0] = 1;
for (int j = 1; j <= i; j++) {
C[i][j] = C[i - 1][j] + C[i - 1][j - 1];
C[i][j] %= MOD;
}
}
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
precompute();
int t; cin >> t;
while (t--) {
int n, k;
cin >> n >> k;
cout << C[n][k] << '\n';
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOyAKCnR5cGVkZWYgbG9uZyBsb25nIGxsOyAgIAoKLy8gQ8OhY2ggdMOtbmggdGjhu6kgMzogdGFtIGdpw6FjIFBhc2NhbCAgIAoKLy8gLSBuQ2sgPSAobiAtIDEpQ2sgKyAobiAtIDEpQyhrIC0gMSkgICAKLy8gLSBjw7JuIGPDoWkgw7Qg4bufIHRv4bqhIMSR4buZIChuLCBrKSB0cm9uZyB0YW0gZ2nDoWMgUGFzY2FsIGPDsyBnacOhIHRy4buLID0gbkNrICAgCgpjb25zdCBpbnQgTiA9IDFlMyArIDU7ICAKY29uc3QgaW50IE1PRCA9IDFlOSArIDc7ICAKCmludCBDW05dW05dOyAvLyBDW2ldW2pdID0gaUNqICAgIAoKLy8gQ2hpIHBow60gYuG7mSBuaOG7mzogTyhuXjIpIAovLyBDaGkgcGjDrSBwcmVjb21wdXRlOiBPKG5eMikgCi8vIENoaSBwaMOtIHTDrW5oIG5DazogTygxKSAKCnZvaWQgcHJlY29tcHV0ZSgpIHsKCWZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKSB7CgkJQ1tpXVswXSA9IDE7ICAgCgkJZm9yIChpbnQgaiA9IDE7IGogPD0gaTsgaisrKSB7CgkJCUNbaV1bal0gPSBDW2kgLSAxXVtqXSArIENbaSAtIDFdW2ogLSAxXTsgICAKCQkJQ1tpXVtqXSAlPSBNT0Q7IAoJCX0KCX0KfQoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgIAoJcHJlY29tcHV0ZSgpOyAgIAoKCWludCB0OyBjaW4gPj4gdDsgICAKCQoJd2hpbGUgKHQtLSkgewoJCWludCBuLCBrOyAgCgkJY2luID4+IG4gPj4gazsgICAKCQljb3V0IDw8IENbbl1ba10gPDwgJ1xuJzsgCgl9Cn0=