#include <fstream>
using namespace std;
ifstream cin("carnati.in");
ofstream cout("carnati.out");
int t[2005], p[2005];
int main()
{
int n, C;
cin >> n >> C;
for (int i = 1; i <= n; i++)
cin >> t[i] >> p[i];
for (int i = 1; i < n; i++)
for (int j = i + 1; j <= n; j++)
if (t[i] > t[j])
{
swap(t[i],t[j]);
swap(p[i],p[j]);
}
long long maxim = 0;
for (int k = 1; k <= n; k++)
{
int pret = p[k];
long long castig;
if (p[1] >= pret)
castig = pret;
else
castig = 0;
long long curent = castig - C;
if (curent > maxim)
maxim = curent;
for (int i = 2; i <= n; i++)
{
if (p[i] >= pret)
castig = pret;
else
castig = 0;
long long incepe = castig - C;
long long continua = curent - 1LL * C * (t[i] - t[i - 1]) + castig;
if (incepe > continua)
curent = incepe;
else
curent = continua;
if (curent > maxim)
maxim = curent;
}
}
cout << maxim;
return 0;
}