// OM NAMAH SHIVAY
#include <bits/stdc++.h>
using namespace std;
void solve(){
int n,k;
cin >> n >> k ;
vector<int> v(n) ;
for(int i=0 ;i<n ;i++){
cin >> v[i];
}
unordered_map<int,long long> hashMap;
vector<long long> pref(n,0);
pref[0]=v[0];
for(int i=1 ;i<n ;i++){
pref[i]=pref[i-1]+v[i];
}
long long ans=LLONG_MIN;
for(int i=0;i<n ;i++){
if(hashMap.find(v[i])==hashMap.end())
hashMap[v[i]]=pref[i]-v[i];
else
hashMap[v[i]]=min(hashMap[v[i]],pref[i]-v[i]);
if(hashMap.find(v[i]-k)!=hashMap.end()){
ans=max(ans,pref[i]-hashMap[v[i]-k]);
}
if(hashMap.find(v[i]+k)!=hashMap.end()){
ans=max(ans,pref[i]-hashMap[v[i]+k]);
}
}
if(ans==LLONG_MIN){
cout << "IMPOSSIBLE\n";
}
else cout << ans << "\n" ;
}
int main() {
// your code goes here
int testCases;
cin >> testCases;
while(testCases--) solve();
return 0;
}
Ly8gT00gTkFNQUggU0hJVkFZCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBzb2x2ZSgpewoJaW50IG4sazsKCWNpbiA+PiBuID4+IGsgOwoJdmVjdG9yPGludD4gdihuKSA7Cglmb3IoaW50IGk9MCA7aTxuIDtpKyspewoJCWNpbiA+PiB2W2ldOwoJfQoJCgl1bm9yZGVyZWRfbWFwPGludCxsb25nIGxvbmc+IGhhc2hNYXA7Cgl2ZWN0b3I8bG9uZyBsb25nPiBwcmVmKG4sMCk7CglwcmVmWzBdPXZbMF07Cglmb3IoaW50IGk9MSA7aTxuIDtpKyspewoJCXByZWZbaV09cHJlZltpLTFdK3ZbaV07Cgl9Cglsb25nIGxvbmcgYW5zPUxMT05HX01JTjsKCWZvcihpbnQgaT0wO2k8biA7aSsrKXsKCQlpZihoYXNoTWFwLmZpbmQodltpXSk9PWhhc2hNYXAuZW5kKCkpCgkJCWhhc2hNYXBbdltpXV09cHJlZltpXS12W2ldOwoJCWVsc2UKCQkJaGFzaE1hcFt2W2ldXT1taW4oaGFzaE1hcFt2W2ldXSxwcmVmW2ldLXZbaV0pOwoJCQkKCQlpZihoYXNoTWFwLmZpbmQodltpXS1rKSE9aGFzaE1hcC5lbmQoKSl7CgkJCWFucz1tYXgoYW5zLHByZWZbaV0taGFzaE1hcFt2W2ldLWtdKTsKCQl9CgkJaWYoaGFzaE1hcC5maW5kKHZbaV0raykhPWhhc2hNYXAuZW5kKCkpewoJCQlhbnM9bWF4KGFucyxwcmVmW2ldLWhhc2hNYXBbdltpXStrXSk7CgkJfQoJCQoJCQoJfQoJaWYoYW5zPT1MTE9OR19NSU4pewoJCWNvdXQgPDwgIklNUE9TU0lCTEVcbiI7Cgl9CgllbHNlIGNvdXQgPDwgYW5zIDw8ICJcbiIgOwp9CmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJaW50IHRlc3RDYXNlczsKCWNpbiA+PiB0ZXN0Q2FzZXM7Cgl3aGlsZSh0ZXN0Q2FzZXMtLSkgc29sdmUoKTsKCXJldHVybiAwOwp9