#include using namespace std; #define fi first #define se second #define pb push_back #define mp make_pair #define rep(i, a, b) for(int i = (a); i < (b); i++) #define per(i, a, b) for(int i = (b) - 1; i >= (a); --i) #define de(x) cout << #x << " = " << x << endl #define dd(x) cout << #x << " = " << x << " " #define endl '\n' #define pw(x) (1ll<<(x)) #define all(x) x.begin(), x.end() #define sz(x) (int)x. size() typedef long long ll; typedef double db; typedef pair pii; typedef vector vi; int t; int n,m; const int N=1000; ll dp[N+1][N+1]; const ll mod=1e9+7; ll cal(int st,int en) { st--; en--; ll ret=1; rep(i,st,en+1) { ret=ret*i; ret%=mod; } return ret; } int main() { std::ios::sync_with_stdio(0); std::cin.tie(0); memset(dp,0,sizeof(dp)); dp[1][0]=1; rep(i,2,N+1) { rep(j,0,i) { rep(k,1,11+1) { if(i-k>=1&&j-k+1>=0) { dp[i][j]+=dp[i-k][j-k+1]*cal(i-k+1,i-1); dp[i][j]%=mod; } } } } while(cin>>t) { while(t--) { cin>>n>>m; if(dp[n][m]==0)dp[n][m]=-1; cout<