#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
void in() {}
template <typename T, class... U>
void in(T &t, U &...u) {
  cin >> t;
  in(u...);
}
void out() { cout << "\n"; }
template <typename T, class... U>
void out(const T &t, const U &...u) {
  cout << t;
  if (sizeof...(u)) cout << " ";
  out(u...);
}
int32_t main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  long long n;
  in(n);
  long long n1;
  in(n1);
  long long x[430000];
  long long v[430000];
  x[0] = 0;
  v[0] = 0;
  x[n + 1] = n1;
  v[n + 1] = 0;
  for (long long i = 1; i < n + 1; i++) {
    in(x[i]);
    in(v[i]);
  }
  long long tmpll[430000];
  long long tmprr[430000];
  tmpll[0] = 0;
  tmprr[0] = 0;
  tmprr[n + 1] = 0;
  for (long long i = 1; i < n + 1; i++)
    tmpll[i] = tmpll[i - 1] + v[i] - (x[i] - x[i - 1]);
  for (long long i = 1; i < n + 1; i++) tmpll[i] = max(tmpll[i - 1], tmpll[i]);
  for (long long i = n; i >= 1; i--)
    tmprr[i] = tmprr[i + 1] + v[i] - (x[i + 1] - x[i]);
  for (long long i = n; i >= 1; i--) tmprr[i] = max(tmprr[i + 1], tmprr[i]);
  long long tmp = 0;
  for (long long i = 1; i < n; i++) {
    tmp = max(tmp, tmpll[i]);
    tmp = max(tmp, tmpll[i] - x[i] + tmpll[i + 1]);
    tmp = max(tmp, tmprr[i]);
    tmp = max(tmp, tmprr[i] - (n1 - x[i]) + tmprr[i - 1]);
  }
  out(tmp);
  return 0;
}
