#include <bits/stdc++.h>
using namespace std;
#define all(x) x.begin() , x.end()
#define ll long long
void solve() {
ll n , x;
cin >> n >> x;
vector<int>v(n);
for(auto &i:v)cin >> i;
vector<int>temp;
ll sum = 0;
sort(all(v));
for (int i = 0; i < n; ++i) {
if(sum + v[i] > x)break;
else {
sum += v[i];
temp.push_back(v[i]);
}
}
ll ans = (temp.empty() ? 0 : (ll)temp.size()) ,cnt = 0;
while(!temp.empty()){
ll sz = (ll)temp.size();
ll c = (x-sum)/sz;
cnt += c;
ans += c*sz;
sum += (sz*c);
sum -= (temp.back()+cnt);
temp.pop_back();
}
cout << ans;
}
int32_t main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int T = 1;
cin >> T;
while (T--) {
solve();
cout << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCkgLCB4LmVuZCgpCiNkZWZpbmUgbGwgbG9uZyBsb25nCgp2b2lkIHNvbHZlKCkgewogICAgbGwgbiAsIHg7CiAgICBjaW4gPj4gbiA+PiB4OwogICAgdmVjdG9yPGludD52KG4pOwogICAgZm9yKGF1dG8gJmk6diljaW4gPj4gaTsKICAgIHZlY3RvcjxpbnQ+dGVtcDsKICAgIGxsIHN1bSA9IDA7CiAgICBzb3J0KGFsbCh2KSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgIGlmKHN1bSArIHZbaV0gPiB4KWJyZWFrOwogICAgICAgIGVsc2UgewogICAgICAgICAgICBzdW0gKz0gdltpXTsKICAgICAgICAgICAgdGVtcC5wdXNoX2JhY2sodltpXSk7CiAgICAgICAgfQogICAgfQogICAgbGwgYW5zID0gKHRlbXAuZW1wdHkoKSA/IDAgOiAobGwpdGVtcC5zaXplKCkpICxjbnQgPSAwOwogICAgd2hpbGUoIXRlbXAuZW1wdHkoKSl7CiAgICAgICAgbGwgc3ogPSAobGwpdGVtcC5zaXplKCk7CiAgICAgICAgbGwgYyA9ICh4LXN1bSkvc3o7CiAgICAgICAgY250ICs9IGM7CiAgICAgICAgYW5zICs9IGMqc3o7CiAgICAgICAgc3VtICs9IChzeipjKTsKICAgICAgICBzdW0gLT0gKHRlbXAuYmFjaygpK2NudCk7CiAgICAgICAgdGVtcC5wb3BfYmFjaygpOwogICAgfQogICAgY291dCA8PCBhbnM7Cn0KCgppbnQzMl90IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0ciksIGNvdXQudGllKG51bGxwdHIpOwojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKICAgIGludCBUID0gMTsKICAgIGNpbiA+PiBUOwogICAgd2hpbGUgKFQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICAgICAgY291dCA8PCAnXG4nOwogICAgfQp9