#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
ll n, threshold, speed[100005] ;
ll answer(){
ll left = 0, right = threshold + 1, mid ;
while(right > left + 1){
mid = (left + right) / 2 ;
ll y = 0, z = 0 ;
for(ll i = 0 ; i < n ; i++){
if(speed[i] > mid) y += (speed[i] - mid) / 3 ;
else z += (mid - speed[i] + 1) / 2 ; // +1 addition for ceil value
}
if(y >= z) left = mid ;
else right = mid ;
}
return left ;
}
void solve(){
cin >> n >> threshold ;
for(ll i = 0 ; i < n ; i++) cin >> speed[i] ;
cout << answer() << '\n' ;
}
int main(){
ll t ; cin >> t ;
while(t--) solve() ;
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQgOwp0eXBlZGVmIGxvbmcgbG9uZyBsbCA7CgpsbCBuLCB0aHJlc2hvbGQsIHNwZWVkWzEwMDAwNV0gOwoKbGwgYW5zd2VyKCl7CgkKCWxsIGxlZnQgPSAwLCByaWdodCA9IHRocmVzaG9sZCArIDEsIG1pZCA7CgkKCXdoaWxlKHJpZ2h0ID4gbGVmdCArIDEpewoJCQoJCW1pZCA9IChsZWZ0ICsgcmlnaHQpIC8gMiA7CgkJCgkJbGwgeSA9IDAsIHogPSAwIDsKCQlmb3IobGwgaSA9IDAgOyBpIDwgbiA7IGkrKyl7CgkJCWlmKHNwZWVkW2ldID4gbWlkKSB5ICs9IChzcGVlZFtpXSAtIG1pZCkgLyAzIDsKCQkJZWxzZSB6ICs9IChtaWQgLSBzcGVlZFtpXSArIDEpIC8gMiA7IC8vICsxIGFkZGl0aW9uIGZvciBjZWlsIHZhbHVlCgkJfQoJCQoJCWlmKHkgPj0geikgbGVmdCA9IG1pZCA7CgkJZWxzZSByaWdodCA9IG1pZCA7CgkJCgl9CgkKCXJldHVybiBsZWZ0IDsKCQp9Cgp2b2lkIHNvbHZlKCl7CgkKCWNpbiA+PiBuID4+IHRocmVzaG9sZCA7Cglmb3IobGwgaSA9IDAgOyBpIDwgbiA7IGkrKykgY2luID4+IHNwZWVkW2ldIDsKCQoJY291dCA8PCBhbnN3ZXIoKSA8PCAnXG4nIDsKCQp9CgppbnQgbWFpbigpewoJCglsbCB0IDsgY2luID4+IHQgOwoJd2hpbGUodC0tKSBzb2x2ZSgpIDsKCQoJcmV0dXJuIDAgOwp9