#include <bits/stdc++.h>
using namespace std;
bool cmp(const vector<pair<int, int> > &a1, const pair<int, int> &a2) {
  for (int i = 0; i < a1.size(); i++) {
    if (a1[i] < a2) return true;
  }
  return false;
}
int main() {
  ios_base::sync_with_stdio(0);
  int n, d, i, j, a, b;
  cin >> n >> d;
  vector<pair<int, int> > F;
  long long int Ff[n];
  for (i = 0; i < n; i++) {
    cin >> a >> b;
    F.push_back(pair<int, int>(a, b));
  }
  sort(F.begin(), F.end());
  Ff[-1] = 0;
  Ff[0] = F[0].second;
  for (i = 1; i < n; i++) {
    Ff[i] = F[i].second + Ff[i - 1];
  }
  int pos;
  long long int maxi = -1;
  for (i = 0; i < n; i++) {
    pos = upper_bound(F.begin(), F.end(), make_pair(F[i].first + d, 0)) -
          F.begin();
    maxi = max(maxi, (Ff[pos - 1] - Ff[i - 1]));
  }
  cout << maxi << "\n";
}
