
#include <bits/stdc++.h>
using namespace std;
const int MAXN=200001;
long long a[MAXN],b[MAXN],n,k;
long long check(long long mid,long long sum){
long long ans=mid;
if(ans>=sum){
return 1;
}
//printf("%lld %lld\n",mid,sum);
for(int i=1;i<=min(mid,n-1);++i){//i表示赋值
int jy=mid-i;
ans=b[n]-b[n-i]+(i+1)*jy;
//printf("%d %lld %d %lld\n",i,b[n]-b[n-i],(i+1)*jy,ans);
if (sum<=ans){
//printf("%lld %lld\n",ans,sum);
return 1;
}
}
return 0;
}
int main(){
int T;
scanf("%d",&T);
while (T--){
memset(b,0,sizeof(b));
long long sum=0,res;
scanf("%lld %lld",&n,&k);
for(int i=1;i<=n;++i){
scanf("%lld",&a[i]);
sum+=a[i];
}
sum=sum-k;
if (sum<=0){
printf("0\n");
continue;
}
sort(a+1,a+n+1);
for(int i=2;i<=n;++i){
b[i]=b[i-1]+a[i]-a[1];
}
/*printf("%lld\n",n);
for(int i=1;i<=n;++i){
printf("%lld ",b[i]);
}
printf("\n");*/
long long l=1,r=10000001;
while (l<=r){
long long mid=(l+r)/2;
if (check(mid,sum)==0){
l=mid+1;
}
else{
res=mid;
r=mid-1;
}
}
printf("%lld\n",res);
}
return 0;
}