#include <bits/stdc++.h>
using namespace std;
int main() {
  unsigned long int N, C;
  long int res3, max3;
  cin >> N >> C;
  unsigned long int x[N], v[N];
  for (int i = 0; i < N; i++) {
    cin >> x[i] >> v[i];
  }
  max3 = -1;
  for (int I = 0; I <= N; I++) {
    for (int J = 0; J <= N - I; J++) {
      res3 = 0;
      for (int i = 0; i < I + 1; i++) {
        if (i > 0) res3 += v[i - 1];
      }
      for (int j = 0; j < J + 1; j++) {
        if (j > 0) res3 += v[N - j];
      }
      if (I > 0 && J > 0) {
        res3 -=
            min(2 * x[I - 1] + C - x[N - J], x[I - 1] + 2 * C - 2 * x[N - J]);
      } else if (I > 0) {
        res3 -= x[I - 1];
      } else if (J > 0) {
        res3 -= C - x[N - J];
      } else {
        res3 = 0;
      }
      if (res3 > max3) {
        max3 = res3;
      }
    }
  }
  cout << max3 << endl;
}
