#include <iostream>
#include <algorithm>
#define int long long
using namespace std;
int n, l, ans;
struct node
{
int a, b;
} c[10005];
bool cmp(node x, node y)
{
return x.a < y.a;
}
signed main()
{
cin >> n >> l;
for(int i = 1; i <= n; i++)
cin >> c[i].a >> c[i].b;
sort(c + 1, c + n + 1, cmp);
for(int i = 1; i <= n; i++)
if(!((c[i].b - c[i].a + 1) % l))
ans += (c[i].b - c[i].a + 1) / l;
else if(c[i].b + 1 == c[i + 1].a)
ans += (c[i].b - c[i].a + 1) / l + 1, c[i + 1].a += (c[i].b - c[i].a + 1) % l;
else ans += (c[i].b - c[i].a + 1) / l + 1;
cout << ans << endl;
return 0;
}
谢谢