from functools import lru_cache
def get_last_term(start,end,d):
return ((end - start) // d) + 1
for _ in range(int(input())):
shops, b = map(int,input().split())
costs = list(map(int,input().split()))
costs.sort()
p_sum = []
s = 0
for c in costs:
s += c
p_sum.append(s)
ans = 0
for i in range(len(p_sum)):
last_term = get_last_term(p_sum[i],b,i+1)
if last_term >= 0:
ans += last_term
print(ans)
#include<bits/stdc++.h>
#define ll long long
#define yes cout<<"YES\n";
#define no cout<<"NO\n";
#define debug(x) cout << "(" << #x << ": " << x << ")\n";
using namespace std;
int inf=-10000000;
ll n,x;
ll a[200200];
void solve(){
cin>>n>>x;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
for(int i=1;i<n;i++)
a[i]+=a[i-1];
ll ans = 0;
for(int i=0;i<n;i++){
if(x-a[i]>=0){
ans+= ((x-a[i])/(i+1)) + 1;
}
}
cout<<ans<<'\n';
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int T;
cin>>T;
while(T--)
solve();
}
1358D - The Best Vacation | 1620B - Triangles on a Rectangle |
999C - Alphabetic Removals | 1634C - OKEA |
1368C - Even Picture | 1505F - Math |
1473A - Replacing Elements | 959A - Mahmoud and Ehab and the even-odd game |
78B - Easter Eggs | 1455B - Jumps |
1225C - p-binary | 1525D - Armchairs |
1257A - Two Rival Students | 1415A - Prison Break |
1271A - Suits | 259B - Little Elephant and Magic Square |
1389A - LCM Problem | 778A - String Game |
1382A - Common Subsequence | 1512D - Corrupted Array |
667B - Coat of Anticubism | 284B - Cows and Poker Game |
1666D - Deletive Editing | 1433D - Districts Connection |
2B - The least round way | 1324A - Yet Another Tetris Problem |
246B - Increase and Decrease | 22E - Scheme |
1566A - Median Maximization | 1278A - Shuffle Hashing |