#include #include #include using namespace std; int t, n, k, l, a[100001], dp[100001]; void in() { scanf("%d %d %d", &n, &k, &l); a[0] = 0; for (int i = 1; i <= n; i++) scanf("%d", &a[i]); } long long solve(int el, int j) { if (el == 0) return 1; if (dp[el] != -1) return dp[el]; long long ans = 0; for (int i = j - 1; i >= 0 && el - a[i] <= l; i--) { ans += solve(a[i], i); ans %= 1000000007; } return dp[el] = ans; } void solveAllTests() { for (int q = 0; q < t; q++) { in(); memset(dp, -1, sizeof(dp)); printf("%lld\n", solve(k, n + 1)); } } int main() { scanf("%d", &t); solveAllTests(); return 0; }