/*
THE DARK NIGHT RISES
I LOVE YOU 72 AND WILL FOREVER DO SO
Patience, Persistence, Perseverance, Passion, Purpose
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef unsigned long long int ull;
typedef long double ld;
const int N = 2e5 + 20 ;
#define F first
#define S second
# define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define pb push_back
#define mk make_pair
#define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define rep(i,a,b) for(ll i=a;i<b;i++)
typedef pair<int, int> ii;
typedef vector<int> vi;
typedef vector<ii> vii;
typedef vector<vi> vvi;
typedef vector<vii> vvii;
#define sz(x) (int)x.size()
const long long int mod=1e9 + 7;
const long double EPS=1e-12;
#define mem( a, val ) memset(a, val, sizeof( a ) )
#define deci( x ) cout<<fixed<<setprecision( x );
#define bitcount( x ) __builtin_popcountll( x )
const int dx[8] = {-1, -1, -1, 0, 1, 1, 1, 0};
const int dy[8] = {-1, 0, 1, 1, 1, 0, -1, -1};
int solve()
{
ll n , k ;
cin >> n >> k ;
ll ans = 0 ,sum=0,mx=0;
std::vector<ll> v(n),x(n,0);
rep(i,0,n) cin >> v[i] ;
sort(all(v));
rep(i,0,n-1)
{
x[i] = max(0ll,v[i]-k);
sum += max(0ll,v[i]-k);
mx = max(mx , x[i]);
ans += min(k,v[i]);
}
if(sum%2==0 && (sum-mx )>= mx) ans += v[n-1] ;
else if((sum -mx)< mx){ans += (v[n-1]-(mx-(sum-mx)));}
else ans += (v[n-1]-1);
cout << ans << '\n';
}
int main()
{
fast;
ll t;
t=1;
cin>>t;
while(t--)
{
solve();
}
return 0;
}
// Patience, Persistence, Perseverance, Passion, Purpose
// I LOVE YOU 72 AND WILL FOREVER DO SO.
LyoKICAgVEhFIERBUksgTklHSFQgUklTRVMKSSBMT1ZFIFlPVSA3MiBBTkQgV0lMTCBGT1JFVkVSIERPIFNPClBhdGllbmNlLCBQZXJzaXN0ZW5jZSwgUGVyc2V2ZXJhbmNlLCBQYXNzaW9uLCBQdXJwb3NlCiovCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGludCBsbDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHVsbDsKdHlwZWRlZiBsb25nIGRvdWJsZSBsZDsKY29uc3QgaW50IE4gPSAyZTUgKyAyMCA7CiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCiMgZGVmaW5lIGFsbCh2KSB2LmJlZ2luKCksdi5lbmQoKQojZGVmaW5lIHJhbGwodikgdi5yYmVnaW4oKSx2LnJlbmQoKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1rIG1ha2VfcGFpcgojZGVmaW5lIGZhc3QgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwojZGVmaW5lIHJlcChpLGEsYikgZm9yKGxsIGk9YTtpPGI7aSsrKQp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOwp0eXBlZGVmIHZlY3RvcjxpaT4gdmlpOwp0eXBlZGVmIHZlY3Rvcjx2aT4gdnZpOwp0eXBlZGVmIHZlY3Rvcjx2aWk+IHZ2aWk7CiNkZWZpbmUgc3ooeCkgICAgICAgKGludCl4LnNpemUoKQpjb25zdCBsb25nIGxvbmcgaW50IG1vZD0xZTkgKyA3Owpjb25zdCBsb25nIGRvdWJsZSBFUFM9MWUtMTI7CiNkZWZpbmUgbWVtKCBhLCB2YWwgKSBtZW1zZXQoYSwgdmFsLCBzaXplb2YoIGEgKSApCiNkZWZpbmUgZGVjaSggeCApIGNvdXQ8PGZpeGVkPDxzZXRwcmVjaXNpb24oIHggKTsKI2RlZmluZSBiaXRjb3VudCggeCApIF9fYnVpbHRpbl9wb3Bjb3VudGxsKCB4ICkKCmNvbnN0IGludCBkeFs4XSA9IHstMSwgLTEsIC0xLCAwLCAxLCAxLCAxLCAwfTsKY29uc3QgaW50IGR5WzhdID0gey0xLCAwLCAxLCAxLCAxLCAwLCAtMSwgLTF9OwoKaW50IHNvbHZlKCkKewoJbGwgbiAsIGsgOwoJY2luID4+IG4gPj4gayA7CglsbCBhbnMgPSAwICxzdW09MCxteD0wOwoJc3RkOjp2ZWN0b3I8bGw+IHYobikseChuLDApOwoJcmVwKGksMCxuKSBjaW4gPj4gdltpXSA7Cglzb3J0KGFsbCh2KSk7CglyZXAoaSwwLG4tMSkKCXsKCQl4W2ldID0gbWF4KDBsbCx2W2ldLWspOwoJCXN1bSArPSBtYXgoMGxsLHZbaV0tayk7CgkJbXggPSBtYXgobXggLCB4W2ldKTsKCQlhbnMgKz0gbWluKGssdltpXSk7Cgl9CglpZihzdW0lMj09MCAmJiAoc3VtLW14ICk+PSBteCkgYW5zICs9IHZbbi0xXSA7CgllbHNlIGlmKChzdW0gLW14KTwgbXgpe2FucyArPSAodltuLTFdLShteC0oc3VtLW14KSkpO30KCWVsc2UgYW5zICs9ICh2W24tMV0tMSk7Cgljb3V0IDw8IGFucyA8PCAnXG4nOwp9CmludCBtYWluKCkKewoJZmFzdDsKCWxsIHQ7Cgl0PTE7CgljaW4+PnQ7Cgl3aGlsZSh0LS0pCgl7CgkJc29sdmUoKTsKCX0KCglyZXR1cm4gMDsKfQovLyBQYXRpZW5jZSwgUGVyc2lzdGVuY2UsIFBlcnNldmVyYW5jZSwgUGFzc2lvbiwgUHVycG9zZQovLyBJIExPVkUgWU9VIDcyIEFORCBXSUxMIEZPUkVWRVIgRE8gU08u