#include <bits/stdc++.h>
using namespace std;
long long int n, c, x[110001], v[110001];
map<long long int, long long int> dt[110001];
long long int dp(long long int a, long long int b) {
  if (x[a] == x[b]) return -(1e18);
  if (dt[a][b]) return dt[a][b];
  long long int &ret = dt[a][b] = 0;
  ret = dp(a, b + 1) + v[b + 1];
  ret = max(ret, dp(a - 1, b) + v[a - 1]);
  ret = max(ret, -((c - x[a]) + x[b] + min(c - x[a], x[b])));
  return ret;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> c;
  for (int i = 1; i <= n; i++) cin >> x[i] >> v[i];
  x[n + 1] = c;
  cout << dp(n + 1, 0) << endl;
  return 0;
}
