#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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgoKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCBuLGs7CgljaW4+Pm4+Pms7Cgl2ZWN0b3I8aW50PiBhKG4pOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJY2luPj5hW2ldOwoJfQoJCgl2ZWN0b3I8aW50PiBwcmVmaXgobisxLDApOwoJZm9yKGludCBpPTE7aTw9bjtpKyspewoJCXByZWZpeFtpXT1wcmVmaXhbaS0xXSthW2ktMV07CgkJCgl9CgkKCXVub3JkZXJlZF9tYXA8aW50LGludD4gbXBwOwoJaW50IGFucyA9IElOVF9NSU47CgkKCWZvcihpbnQgaj0wO2o8bjtqKyspewoJCQoJCWludCBzdW0xPUlOVF9NSU47CgkJaW50IHN1bTI9SU5UX01JTjsKCQkKCQkKCWlmKG1wcC5maW5kKGFbal0taykhPW1wcC5lbmQoKSl7CgkJc3VtMSA9IHByZWZpeFtqKzFdIC0gbXBwW2Fbal0ta107Cgl9CglpZihtcHAuZmluZChhW2pdK2spIT1tcHAuZW5kKCkpewoJCXN1bTIgPSBwcmVmaXhbaisxXSAtbXBwW2Fbal0ra107Cgl9CglhbnMgPSBtYXgoYW5zLG1heChzdW0xLHN1bTIpKTsKCQoJCWlmKG1wcC5maW5kKGFbal0pIT1tcHAuZW5kKCkpewoJCQltcHBbYVtqXV09bWluKG1wcFthW2pdXSxwcmVmaXhbal0pOwoJCX0KCQllbHNlewoJCQltcHBbYVtqXV09cHJlZml4W2pdOwoJCX0KCX0KCQoJCglpZihhbnM9PUlOVF9NSU4pewoJCWNvdXQ8PCJOb3QgcG9zc2libGUiOwoJfQoJZWxzZXsKCWNvdXQ8PGFuczw8ZW5kbDsKCX0KCQoJCgkKCXJldHVybiAwOwp9