#include <bits/stdc++.h> using namespace std; typedef long long ll; #define REP(i,n) for(int i=0,_n=(int)(n);i<_n;++i) #define ALL(v) (v).begin(),(v).end() template<class T1,class T2>ostream& operator<<(ostream& os,const pair<T1,T2>&a){return os<<"("<<a.first<<","<<a.second<< ")";} template<class T>void pv(T a,T b){for(T i=a;i!=b;++i)cout<<(*i)<<" ";cout<<endl;} template<class T>bool chmin(T&a,const T&b){return a>b?(a=b,1):0;} template<class T>bool chmax(T&a,const T&b){return a<b?(a=b,1):0;} int nextInt() { int x; scanf("%d", &x); return x;} int T[128], K[128]; ll dp[128][2]; const ll INF = 1LL << 58; int main2() { int N = nextInt(); int D = nextInt(); REP(i, N) { T[i] = nextInt(); K[i] = nextInt(); } REP(i, 128) REP(j, 2) dp[i][j] = -INF; dp[0][0] = 0; for (int i = 0; i < N; i++) { chmax(dp[i+1][0], dp[i][0] + T[i]); chmax(dp[i+1][0], dp[i][1] + T[i] - D); chmax(dp[i+1][1], dp[i][0] + K[i] - D); chmax(dp[i+1][1], dp[i][1] + K[i]); } ll ans = max(dp[N][0], dp[N][1]); cout << ans << endl; return 0; } int main() { for (;!cin.eof();cin>>ws) main2(); return 0; }