#include #define ls ch[x][0] #define rs ch[x][1] #define ll long long #define int ll using namespace std; inline ll read(){ ll num=0,neg=1;char c=getchar(); while(!isdigit(c)){if(c=='-')neg=-1;c=getchar();} while(isdigit(c)){num=(num<<3)+(num<<1)+c-'0';c=getchar();} return num*neg; } const ll mod=1e9+7; int f[1010][1010][11]; ll T,n,m,tmp; signed main(){ f[1][0][0]=1; for(int i=2;i<=1000;i++){ for(int j=0;j<=i;j++){ for(int k=0;k<=10;k++) f[i][j][0]=(f[i][j][0]+f[i-1][j][k])%mod; if(j>0) { for(int k=1;k<=10;k++) tmp=1ll*f[i-1][j-1][k-1]*(1ll*i-1ll)%mod,f[i][j][k]=(int)tmp; } } } T=read(); while(T--){ n=read(),m=read(); if(!f[n][m][0]) printf("-1\n"); else printf("%d\n",f[n][m][0]); }return 0; }