#include <iostream>
#include<bits/stdc++.h>


using namespace std;

int main() {
	// your code goes here
	int n,k;
	cin>>n>>k;
	vector<int> a(n);
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	
	vector<int> prefix(n+1,0);
	for(int i=1;i<=n;i++){
		prefix[i]=prefix[i-1]+a[i-1];
		
	}
	
	unordered_map<int,int> mpp;
	int ans = INT_MIN;
	
	for(int j=0;j<n;j++){
		
		int sum1=INT_MIN;
		int sum2=INT_MIN;
		
		
	if(mpp.find(a[j]-k)!=mpp.end()){
		sum1 = prefix[j+1] - mpp[a[j]-k];
	}
	if(mpp.find(a[j]+k)!=mpp.end()){
		sum2 = prefix[j+1] -mpp[a[j]+k];
	}
	ans = max(ans,max(sum1,sum2));
	
		if(mpp.find(a[j])!=mpp.end()){
			mpp[a[j]]=min(mpp[a[j]],prefix[j]);
		}
		else{
			mpp[a[j]]=prefix[j];
		}
	}
	
	
	if(ans==INT_MIN){
		cout<<"Not possible";
	}
	else{
	cout<<ans<<endl;
	}
	
	
	
	return 0;
}