#include <bits/stdc++.h>
using namespace std;
long long N, C;
long long x[100001], rx[100001];
long long sum[100001], rsum[100001];
long long v[100001], section_max[100001];
int main() {
  cin >> N >> C;
  for (int i = 0; i < (N); i++) cin >> x[i + 1] >> v[i + 1];
  for (int i = 0; i < (N); i++) {
    rx[i + 1] = C - x[N - i];
    sum[i + 1] = sum[i] + v[i + 1];
    rsum[i + 1] = rsum[i] + v[N - i];
  }
  long long ans = 0;
  for (int i = 0; i < (N); i++)
    section_max[i + 1] = max(section_max[i], sum[i + 1] - x[i + 1] * 2);
  for (int i = 0; i < (N); i++)
    ans = max(ans, section_max[N - i] + rsum[i] - rx[i]);
  section_max[0] = 0;
  for (int i = 0; i < (N); i++)
    section_max[i + 1] = max(section_max[i], rsum[i + 1] - rx[i + 1] * 2);
  for (int i = 0; i < (N); i++)
    ans = max(ans, section_max[N - i] + sum[i] - x[i]);
  cout << ans << endl;
  return 0;
}
