#include using namespace std; typedef long long ll; const ll mod = 1e9 + 7; ll dp[2][1010][11]; int main() { int T; cin >> T; while (T--) { int n, m; cin >> n >> m; n -= 2; if (n <= 0 && m == 0) cout << 1 << endl; else if (m + ((m - 1) / 10) > n) cout << -1 << endl; else { memset(dp[1], 0, sizeof dp[1]); dp[1][0][0] = 1, dp[1][1][1] = 1; for (int i = 2; i <= n; i++) { memset(dp[i % 2], 0, sizeof dp[i % 2]); dp[i % 2][0][0] = dp[(i - 1) % 2][0][0]; for (int j = 1; j <= m; j++) { dp[i % 2][j][0] = dp[(i - 1) % 2][j][0]; for (int k = 1; k < 11; k++) { dp[i % 2][j][k] = dp[(i - 1) % 2][j - 1][k - 1] * i % mod; dp[i % 2][j][0] = (dp[i % 2][j][0] + dp[(i - 1) % 2][j][k]) % mod; } } } ll ans = 0; for (int i = 0; i < 11; i++) ans = (ans + dp[n % 2][m][i]) % mod; cout << ans << endl; } } return 0; }