#include using namespace std; typedef unsigned long long ll; const ll p = 1e9 + 7; ll dp[1010][1010][12]; int main() { int t; scanf("%d", &t); while(t--) { int n, m; scanf("%d%d", &n, &m); dp[0][0][0] = 1; for(int i = 1; i <= n - 1; i++) { for(int j = 0; j <= min(i, m); j++) { for(int k = 0; k <= min(10, j); k++) { dp[i][j][k] = 0; dp[i][j][0] = (dp[i][j][0] + dp[i - 1][j][k]) % p; if(k && dp[i - 1][j - 1][k - 1]) dp[i][j][k] = (dp[i][j][k] + (i - 1) * dp[i - 1][j - 1][k - 1]) % p; } } } ll ans = 0; for(int i = 0; i <= 10; i++) ans = (ans + dp[n - 1][m][i]) % p; if(ans == 0) printf("-1\n"); else cout << ans << endl; } return 0; }