// 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;
}