#include <bits/stdc++.h>
int main() {
  int n, i, j;
  long long c, ans = 0, t;
  scanf("%d%lld", &n, &c);
  long long a[n][2], ansa[n], ansb[n];
  for (i = 0; i < n; i++) scanf("%lld%lld", &a[i][0], &a[i][1]);
  ansa[0] = a[0][1] - a[0][0];
  ans = ansa[0] > ans ? ansa[0] : ans;
  for (i = 1; i < n; i++) {
    ansa[i] = ansa[i - 1] + a[i][1] - (a[i][0] - a[i - 1][0]);
    if (ansa[i] > ans) ans = ansa[i];
  }
  ansb[n - 1] = a[n - 1][1] - (c - a[n - 1][0]);
  ans = ansb[n - 1] > ans ? ansb[n - 1] : ans;
  for (i = n - 2; i >= 0; i--) {
    ansb[i] = ansb[i + 1] + a[i][1] - (a[i + 1][0] - a[i][0]);
    if (ansb[i] > ans) ans = ansb[i];
  }
  if (n == 1) {
    printf("%lld", ans);
    return 0;
  }
  bool visit[n];
  for (i = 0; i < n; i++) {
    memset(visit, false, sizeof(visit));
    for (j = 0; j <= i; j++) visit[j] = true;
    if (!visit[n - 1]) {
      t = ansa[i] - a[i][0] + a[n - 1][1] - (c - a[n - 1][0]);
      if (t > ans) ans = t;
    }
    for (j = n - 2;; j--) {
      if (!visit[j]) {
        t = t + a[j][1] - (a[j + 1][0] - a[j][0]);
        if (t > ans) ans = t;
      } else
        break;
    }
  }
  for (i = n - 1; i >= 0; i--) {
    memset(visit, false, sizeof(visit));
    for (j = n - 1; j >= i; j--) visit[j] = true;
    if (!visit[0]) {
      t = ansb[i] - (c - a[i][0]) + a[0][1] - a[0][0];
      if (t > ans) ans = t;
    }
    for (j = 1;; j++) {
      if (!visit[j]) {
        t = t + a[j][1] - (a[j][0] - a[j - 1][0]);
        if (t > ans) ans = t;
      } else
        break;
    }
  }
  printf("%lld", ans);
  return 0;
}
