Penelope is part of the admin team of the newly built supercomputer. Her job is to assign workstations to the researchers who come here to run their computations at the supercomputer. 

Penelope is very lazy and hates unlocking machines for the arriving researchers. She can unlock the machines remotely from her desk, but does not feel that this menial task matches her qualifications. Should she decide to ignore the security guidelines she could simply ask the researchers not to lock their workstations when they leave, and then assign new researchers to workstations that are not used any more but that are still unlocked. That way, she only needs to unlock each workstation for the first researcher using it, which would be a huge improvement for Penelope.

Unfortunately, unused workstations lock themselves automatically if they are unused for more than $m$ minutes. After a workstation has locked itself, Penelope has to unlock it again for the next researcher using it. Given the exact schedule of arriving and leaving researchers, can you tell Penelope how many unlockings she may save by asking the researchers not to lock their workstations when they leave and assigning arriving researchers to workstations in an optimal way? You may assume that there are always enough workstations available.

-----Input-----
The input consists of:
 - one line with two integers $n$ ($1 \leq n \leq 300000$), the number of researchers, and $m$ ($1 \leq m \leq 10^8$), the number of minutes of inactivity after which a workstation locks itself;
 - $n$ lines each with two integers $a$ and $s$ ($1 \leq a, s \leq 10^8$), representing a researcher that arrives after $a$ minutes and stays for exactly $s$ minutes.

-----Output-----
Output the maximum number of unlockings Penelope may save herself.

-----Examples-----
Sample Input:
3 5
1 5
6 3
14 6
Sample Output:
2

Source: kattis | Difficulty: MEDIUM
Tags: Greedy algorithms


Solutions: