#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
const int Mod = 1000000007;
const int N = 20000005;
int l, n, m;
int J[N], inv[N];

int power(ll a, int b) {
	ll res = 1;
	while (b) {
		if (b & 1) res = res * a % Mod;
		a = a * a % Mod;
		b >>= 1;
	}
	return res;
}

int C(int m, int n) {
	if (n < 0 || n > m) return 0;
	return J[m] * (ll)inv[n] % Mod * (ll)inv[m - n] % Mod;
}

int main() {
	J[0] = 1;
	for (int i = 1; i <= 20000000; i++)
		J[i] = J[i - 1] * (ll)i % Mod;
	for (int i = 0; i <= 20000000; i++)
		inv[i] = power(J[i], Mod - 2);
	int Tc;
	scanf("%d", &Tc);
	while (Tc--) {
		scanf("%d%d%d", &l, &n, &m);
		ll ans = 0;
		for (int i = 0; i <= n && l - i * m >= 0; i++) {
			ll tmp = C(n, i) * (ll)C(l - i * m + n - i - 1, n - 1) % Mod;
			if (i & 1) tmp = -tmp;
			ans += (tmp + Mod) % Mod;
			ans %= Mod;
		}
		printf("%lld\n", ans);
	}
	return 0;
}
