#include <bits/stdc++.h>
using namespace std;
#define mod 1000000007
#define max 100001
typedef long long ll;
ll rec(ll n, ll m, map<ll,ll>dp){
if(n<0 || m<0)
return 0;
if(n==0)
return 1;
if(dp.find(n)!=dp.end()){
return dp[n];
}
else{
ll a = rec(n-1,m, dp)%mod;
ll b = 0;
if(m<=n)
b = rec(n-m, m, dp)%mod;
dp[n] = (a+b)%mod;
return dp[n];
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int t;
cin>>t;
while(t--){
ll n,m;
cin>>n>>m;
map<ll,ll>dp;
ll ans = rec(n,m,dp);
cout<<ans<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbW9kIDEwMDAwMDAwMDcKI2RlZmluZSBtYXggMTAwMDAxCnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKbGwgcmVjKGxsIG4sIGxsIG0sIG1hcDxsbCxsbD5kcCl7CiAgICBpZihuPDAgfHwgbTwwKQogICAgICAgIHJldHVybiAwOwogICAgaWYobj09MCkKICAgICAgICByZXR1cm4gMTsKICAgIGlmKGRwLmZpbmQobikhPWRwLmVuZCgpKXsKICAgIAlyZXR1cm4gZHBbbl07CiAgICB9CiAgICBlbHNlewogICAgICAgIGxsIGEgPSByZWMobi0xLG0sIGRwKSVtb2Q7CiAgICAgICAgbGwgYiA9IDA7CiAgICAgICAgaWYobTw9bikKICAgICAgICAgICAgYiA9IHJlYyhuLW0sIG0sIGRwKSVtb2Q7CiAgICAgICAgZHBbbl0gPSAoYStiKSVtb2Q7CiAgICAgICAgcmV0dXJuIGRwW25dOwogICAgfQp9CgppbnQgbWFpbigpIHsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luLnRpZShOVUxMKTsKCWNvdXQudGllKE5VTEwpOwoJaW50IHQ7CgljaW4+PnQ7Cgl3aGlsZSh0LS0pewoJICAgIGxsIG4sbTsKICAgICAgICBjaW4+Pm4+Pm07CiAgICAgICAgbWFwPGxsLGxsPmRwOwogICAgICAgIGxsIGFucyA9IHJlYyhuLG0sZHApOwogICAgICAgIGNvdXQ8PGFuczw8ZW5kbDsKCX0KCXJldHVybiAwOwp9