#include<bits/stdc++.h>
using namespace std;
int T,n,x,maxs,mins;
long long arr[200005]={0},sum[200005]={0};
int erf(int il,int ir){
int l=il,r=ir;
while(l+1<r){
int mid=(l+r)>>1;
if(mid>maxs)r=mid;
else if(mid<mins)l=mid;
else if(sum[mid]<=x)l=mid;
else r=mid;
}return l;
}
int main(){
cin>>T;
while(T--){
maxs=0;
mins=11451419;
cin>>n>>x;
while(n--){
int a;
cin>>a;
mins=min(mins,a);
maxs=max(maxs,a);
arr[a+1]++;
}
for(int i=mins+1;i<=maxs+1;i++){
arr[i]+=arr[i-1];
sum[i]=sum[i-1]+arr[i];
}
if(sum[maxs+1]<x){
cout<<(x-sum[maxs])/arr[maxs+1]+maxs<<'\n';
for(int i=mins;i<=maxs+1;i++){
arr[i]=0;
}
continue;
}
for(int i=mins;i<=maxs+1;i++){
arr[i]=0;
}
cout<<erf(mins,100000000)<<'\n';
}
}