#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];
}
int p=0;
unordered_map<int,int> mpp;
int ans = INT_MIN;
for(int j=0;j<n;j++){
int sum1=INT_MIN;
int sum2=INT_MIN;
int prev=p;
p=p+a[j];
if(mpp.find(a[j]-k)!=mpp.end()){
sum1 = p - mpp[a[j]-k];
}
if(mpp.find(a[j]+k)!=mpp.end()){
sum2 = p -mpp[a[j]+k];
}
ans = max(ans,max(sum1,sum2));
if(mpp.find(a[j])!=mpp.end()){
mpp[a[j]]=min(mpp[a[j]],prev);
}
else{
mpp[a[j]]=prev;
}
}
if(ans==INT_MIN){
cout<<"Not possible";
}
else{
cout<<ans<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgoKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCBuLGs7CgljaW4+Pm4+Pms7Cgl2ZWN0b3I8aW50PiBhKG4pOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJY2luPj5hW2ldOwoJfQoJCglpbnQgcD0wOwoJCgkKCXVub3JkZXJlZF9tYXA8aW50LGludD4gbXBwOwoJaW50IGFucyA9IElOVF9NSU47CgkKCWZvcihpbnQgaj0wO2o8bjtqKyspewoJCQoJCWludCBzdW0xPUlOVF9NSU47CgkJaW50IHN1bTI9SU5UX01JTjsKCQlpbnQgcHJldj1wOwoJCQoJCXA9cCthW2pdOwoJCQoJCQoJaWYobXBwLmZpbmQoYVtqXS1rKSE9bXBwLmVuZCgpKXsKCQlzdW0xID0gcCAtIG1wcFthW2pdLWtdOwoJfQoJaWYobXBwLmZpbmQoYVtqXStrKSE9bXBwLmVuZCgpKXsKCQlzdW0yID0gcCAtbXBwW2Fbal0ra107Cgl9CglhbnMgPSBtYXgoYW5zLG1heChzdW0xLHN1bTIpKTsKCQoJCWlmKG1wcC5maW5kKGFbal0pIT1tcHAuZW5kKCkpewoJCQltcHBbYVtqXV09bWluKG1wcFthW2pdXSxwcmV2KTsKCQl9CgkJZWxzZXsKCQkJbXBwW2Fbal1dPXByZXY7CgkJfQoJfQoJaWYoYW5zPT1JTlRfTUlOKXsKCQljb3V0PDwiTm90IHBvc3NpYmxlIjsKCX0KCWVsc2V7Cgljb3V0PDxhbnM8PGVuZGw7Cgl9CgkKCQoJCglyZXR1cm4gMDsKfQ==