#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 1e5;
const long long INF = 1e18;
int N;
long long C;
long long X[MAX_N + 2], V[MAX_N + 2];
long long vsum[MAX_N + 2];
int main() {
  cin >> N >> C;
  vsum[0] = 0;
  X[0] = 0;
  V[0] = 0;
  for (int i = (0); i < (N); i++) {
    cin >> X[i + 1] >> V[i + 1];
    vsum[i + 1] = vsum[i] + V[i + 1];
  }
  X[N + 1] = C;
  V[N + 1] = 0;
  vsum[N + 1] = vsum[N];
  long long ans = 0;
  for (int i = (0); i < (N + 1); i++) {
    for (int j = (i + 1); j < (N + 2); j++) {
      ans = max(ans, vsum[i] + (vsum[N] - vsum[j - 1]) - X[i] - (C - X[j]) -
                         min(X[i], C - X[j]));
    }
  }
  cout << ans << endl;
  return 0;
}
