#include <stdio.h>
#include <algorithm>
using namespace std;
#define MAX 2000
struct date
{
int a, b;
}v[MAX];
bool cmp(date x, date y)
{
return x.a<y.a;
}
int main()
{
FILE *fin,*fout;
fin=fopen("carnati.in","r");
fout=fopen("carnati.out","w");
int n,i,c,last=0,sumcur=0,o,ne,max=0;
fscanf(fin,"%d%d",&n,&c);
for(i=1;i<=n;i++)
fscanf(fin,"%d%d",&v[i].a,&v[i].b);
sort(v+1,v+n+1,cmp);
for(i=1;i<=n;i++)
{
int g;
o=0;
for(int j=1;j<=n;j++)
{
if(v[j].b>=v[i].b)
g=v[i].b;
else
g=0;
ne=o-(v[j].a-v[j-1].a)*c+g;
if(ne<g-c)
ne=g-c;
if(ne>max)
max=ne;
o=ne;
}
}
fprintf(fout,"%d",max);
return 0;
}