#include <atcoder/all>
#include <bits/stdc++.h>
using namespace std;
using namespace atcoder;
int main(){
   long long n, k, i, rui[300100]={0}, ans=-1, num, tmp, rig, lef;
   vector<long long> a;
   cin >> n >> k;
   for(i=0;i<n;i++){
       long long t;
       cin >>t;
       a.push_back(t);
   }
   sort(a.begin(), a.end());
   for(i=0;i<n;i++){
       rui[i+1]=rui[i]+a[i];
   }

   for(i=0;i<n;i++){
       tmp=max((long long)0, a[i]-k);
       auto left=lower_bound(a.begin(), a.end(), tmp);
       auto right=upper_bound(a.begin(), a.end(), a[i]+k);
       rig=distance(a.begin(), right);
       lef=distance(a.begin(), left); 
       num=rui[rig]-rui[lef];
       ans=max(ans, num);
   }

   cout << ans <<endl;
   return 0;
}