int res[100000]={0};
void tilingWays(int n,int m){
if(n<m){
res[n]+=1;
return;
}
if(res[n-1]==0 or res[n-m]==0){
tilingWays(n-1,m);
tilingWays(n-m,m);
res[n]=res[n-1]+res[n-m];
}
else{
res[n]=res[n-1]+res[n-m];
}
return;
}
int main() {
int t;
cin>>t;
while(t–){
int n,m;
cin>>n>>m;
tilingWays(n,m);
int k=res[n]%1000000007;
cout<<k<<endl;
}
return 0;
}