#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
long long C;
int N;
long long x[100000];
long long v[100000];
long long calcSub(int r, int l) {
  long long res;
  if (r && l) {
    res = min(x[r - 1], C - x[N - l]) * 2;
    res += max(x[r - 1], C - x[N - l]);
    res = min(res, x[N - 1]);
    res = min(res, C - x[0]);
  } else if (r) {
    res = x[r - 1];
  } else {
    res = C - x[N - l];
  }
  return res;
}
int main() {
  cin >> N >> C;
  for (int i = (int)(0), i_end = (int)(N); i < i_end; ++i) {
    cin >> x[i] >> v[i];
  }
  long long ans = 0;
  long long sum = 0;
  long long r = 0;
  long long l = 0;
  for (int i = (int)(0), i_end = (int)(N); i < i_end; ++i) {
    if (v[r] - calcSub(r + 1, l) > v[N - 1 - l] - calcSub(r, l + 1)) {
      r++;
      sum += v[r - 1];
    } else {
      l++;
      sum += v[N - l];
    }
    ans = max(ans, sum - calcSub(r, l));
  }
  cout << ans << endl;
  return 0;
}
