#include<iostream>
#include<cstring>
using namespace std;
int a[2003][2003];
void F()
{
int i,j;
memset(a,0,sizeof(a));
for(i=1;i<2001;i++)
{
a[1][i]=i%1007;
a[i][i]=1;
}
for(i=2;i<2001;i++)
for(j=i+1;j<2001;j++)
a[i][j]=(a[i][j-1]+a[i-1][j-1])%1007;
}
int main()
{
int s,n,m;
F();
cin>>s;
while(s--)
{
cin>>m>>n;
cout<<a[m][n]<<endl;
}
return 0;
}
#include<cstring>
using namespace std;
int a[2003][2003];
void F()
{
int i,j;
memset(a,0,sizeof(a));
for(i=1;i<2001;i++)
{
a[1][i]=i%1007;
a[i][i]=1;
}
for(i=2;i<2001;i++)
for(j=i+1;j<2001;j++)
a[i][j]=(a[i][j-1]+a[i-1][j-1])%1007;
}
int main()
{
int s,n,m;
F();
cin>>s;
while(s--)
{
cin>>m>>n;
cout<<a[m][n]<<endl;
}
return 0;
}