小镇上有一条笔直的街道,街道的每个整数点上住着一户人家,从位置 0 开始,到位置 1018 结束。
在街道的位置 0 处住着本镇唯一的木匠,他为人善良、勤劳朴实,而且很聪明,镇上的家家户户,只要家具、木器坏了,都会打电话找木匠来修。
一天木匠接到了 N 户人家的维修电话。他工整的在自己的本子上整理出了要去维修的每户人家的位置 X_i,并根据来电描述的损坏情况评估了在每户人家维修所需要的时间 T_i 。
木匠在街道上行走,每走一个单位的距离,需要消耗一个单位的时间,从第 i 户人家的位置 X_i 走到 第 j 户人家的位置 X_j,他所需要的行走时间为 |X_i - X_j|。
木匠看了看手表,估算了一下,现在出发到天黑只有 M 个单位的时间了,他必须在天黑之前尽可能给更多的人家维修,维修完最后一户人家,主人会热情的招待木匠住在他家,一起吃饭。因此你不用考虑木匠回家的时间,只需要让木匠在 M 个单位的时间内,尽可能帮助更多的人家完成维修工作。
请编程计算出,如果木匠选择部分人家来维修,最多能完成多少户人家的维修工作。
第 1 行读入 2 个整数 N 和 M,含义如题所述。
接下来 N 行,每行读入 2 个整数 X_i、T_i 表示第 i 户打维修电话人家的位置,及木匠评估为该户维修所需的时间。
输出聪明的木匠,最多能够维修的户数。
2 10 5 5 1 100
1
木匠接到 2 家的电话,他有 10 个单位的时间,第 1 户人家位于位置 5 ,维修时间为 5 ,木匠可以完成该户的维修工作。
第 2 户人家位于位置 1,虽然木匠在去第 1 户人家的路上会经过该位置,但这户人家的维修时间太长,需要 100 个单位的时间,因此木匠今天不会为该户维修。
对于 30\% 的数据, n ≤ 20 。
对于 60\% 的数据, n ≤ 1000 。
对于 100\% 的数据,1 ≤ n ≤ 10^5,1 ≤ M ≤ 1018, 0 ≤ X_i ≤ 1018, 0 ≤ T_i ≤ 10^9。
东方博宜OJ