#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, h, i, j, ind, ans = -1;
  cin >> n >> h;
  long long x1[n + 1], x2[n + 1], d[n + 1], ara[n + 1];
  for (i = 1; i <= n; i++) {
    cin >> x1[i] >> x2[i];
    d[i] = x2[i] - x1[i];
  }
  d[0] = 0;
  for (i = 1; i <= n; i++) d[i] += d[i - 1];
  ara[1] = 0;
  ara[0] = 0;
  for (i = 2; i <= n; i++) {
    ara[i] = x1[i] - x2[i - 1];
  }
  for (i = 2; i <= n; i++) {
    ara[i] += ara[i - 1];
  }
  for (i = 1; i <= n; i++) {
    ind = lower_bound(ara + 1, ara + n + 1, ara[i] + h) - ara;
    if (ind == n + 1) {
      ind = n;
    } else if (ara[ind] > ara[i]) {
      ind--;
    } else {
    }
    long long d1 = x2[ind] - x1[i];
    long long d2 = d1 - (d[ind] - d[i - 1]);
    d1 += (h - d2);
    ans = max(ans, d1);
  }
  cout << ans << endl;
}
