#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
int main(){
int t; cin >> t;
while(t--){
int n, k; cin >> n >> k;
vector<int> a(n + 1);
for(int i = 1; i <= n; i++) cin >> a[i];
//base case
vector<int> dp(k + 1, 0);
dp[0] = 1;
//order + transition
for(int i = 1; i <= k; i++){
for(int j = 1; j <= n; j++){
if(i >= a[j]){
dp[i] = (dp[i] + dp[i - a[j]]) % MOD;
}
}
}
//result
cout << dp[k] << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKCmludCBtYWluKCl7CglpbnQgdDsgY2luID4+IHQ7Cgl3aGlsZSh0LS0pewoJCWludCBuLCBrOyBjaW4gPj4gbiA+PiBrOwoJCXZlY3RvcjxpbnQ+IGEobiArIDEpOwoJCWZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXTsKCQkKCQkvL2Jhc2UgY2FzZQoJCXZlY3RvcjxpbnQ+IGRwKGsgKyAxLCAwKTsKCQlkcFswXSA9IDE7CgkJCgkJLy9vcmRlciArIHRyYW5zaXRpb24KCQlmb3IoaW50IGkgPSAxOyBpIDw9IGs7IGkrKyl7CgkJCWZvcihpbnQgaiA9IDE7IGogPD0gbjsgaisrKXsKCQkJCWlmKGkgPj0gYVtqXSl7CgkJCQkJZHBbaV0gPSAoZHBbaV0gKyBkcFtpIC0gYVtqXV0pICUgTU9EOwoJCQkJfQoJCQl9CgkJfQoJCQoJCS8vcmVzdWx0CgkJY291dCA8PCBkcFtrXSA8PCAnXG4nOwoJfQp9