#include <bits/stdc++.h>
#define ll long long int
#define ld long double
using namespace std;

const ll mod = 1e9 + 7;
const ll N = 4e5 + 50;
vector<ll> fact(N + 1, 1);

ll power(ll x, ll n)
{
  ll ans = 1;
  while (n != 0)
  {
    if (n % 2 == 1)
      ans = (ans * x) % mod;
    x = (x * x) % mod;
    n /= 2;
  }
  return ans % mod;
}

ll nCr(ll n, ll r)
{

  ll x = power(fact[r], mod - 2);
  ll y = power(fact[n - r], mod - 2);
  x = (x * y) % mod;
  return (fact[n] * x) % mod;
}

void mainSolve()
{
  ll n, m;
  cin >> n >> m;
  ll y = (n + m - 1) / m;
  ll ans = (nCr(n + m, m) - nCr(m + y - 1, m) + mod) % mod;
  cout << ans << endl;
}

int main()
{
#ifndef ONLINE_JUDGE
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
#endif
  int t;
  cin >> t;

  for (ll i = 2; i <= N; i++)
    fact[i] = (fact[i - 1] * i) % mod;
  while (t--)
  {
    mainSolve();
  }
  return 0;
}