#include using namespace std; #define REP(i, n) for(int i=0, i##_len=(n); i= 0;i--) #define REP3(i, m, n) for(int i = m, i##_len=(n);i < i##_len;i++) #define FOREACH(i, v) for(int i = 0;i < v.size();i++) #define INF 1000000000 #define pb(a) push_back(a) #define llong long long int main(){ int N,D; int t,k; vector kyoto; vector tokyo; vector buffer; tokyo.pb(0); kyoto.pb(0); cin>>N>>D; REP(i, N){ cin>>t>>k; FOREACH(i,tokyo){ buffer.pb(tokyo[i]+t); buffer.pb(tokyo[i]+k-D); }buffer.swap(tokyo);buffer.clear(); FOREACH(i,kyoto){ buffer.pb(kyoto[i]+t); buffer.pb(kyoto[i]+k-D); }buffer.swap(kyoto);buffer.clear(); } int max=0; FOREACH(i,tokyo) if(tokyo[i]>max)max=tokyo[i]; FOREACH(i,kyoto) if(kyoto[i]>max)max=kyoto[i]; cout<