#include <bits/stdc++.h>   using namespace std;   int n, d, ff = 1, bb = 1;   long long mx;   pair<long long, long long> f[100005];   int main() {     scanf( %d%d , &n, &d);     for (int i = 1; i <= n; i++) scanf( %d%d , &f[i].first, &f[i].second);     sort(f + 1, f + n + 1);     for (int i = 2; i <= n; i++) f[i].second += f[i - 1].second;     while (true) {       while (f[bb].first - f[ff].first < d && bb != n + 1) bb++;       mx = max(mx, f[bb - 1].second - f[ff - 1].second);       ff++;       if (ff == n + 1) break;     }     printf( %I64d , mx);     return 0;   }   