#include<bits/stdc++.h>
using namespace std;
vector dp(1000010,0);
int tiling(int n , int m){
if(n==m){
return 2;
}
if(n<=1 || n<m){
return 1;
}
if(dp[n]!=0){
return dp[n];
}else{
dp[n]=((tiling(n-m , m)%1000000007)+(tiling(n-1 , m)%1000000007))%1000000007;
}
return dp[n];
}
int main(){
int t;
cin>>t;
while(t–){
int n,m;
cin>>n>>m;
cout<<tiling(n,m)<<endl;
}
return 0;
}