#include <bits/stdc++.h>
#pragma GCC optimize("O3")
;
using namespace std;
;
const long long maxn = 7 * 1e5;
struct potok {
  long long l;
  long long r;
};
potok P[maxn];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  long long q, w, e, r, m, n, h;
  cin >> n >> h;
  for (q = 0; q < n; q++) {
    cin >> P[q].l >> P[q].r;
  }
  long long i1 = 0, i2 = 0, ans = 0, len = 0;
  long long nans = P[0].r - P[0].l;
  while (i2 != n) {
    if (len >= h) {
      i1++;
      len -= P[i1].l - P[i1 - 1].r;
      nans -= P[i1 - 1].r - P[i1 - 1].l;
    } else {
      ans = max(ans, nans);
      i2++;
      len += P[i2].l - P[i2 - 1].r;
      nans += P[i2].r - P[i2].l;
    }
  }
  cout << h + ans << endl;
  return 0;
}
