《I Can Program C++!》是一款由竞技编程社区众筹开发的全新寓教于乐类电子游戏。其目标是向 3 到 4 岁的儿童传授段错误、内存泄漏和移动语义的奇妙之处!
开发者为游戏选择了奇幻 RPG 的背景。你将扮演一名编程巫师,利用编程的力量击败巨龙、暴君以及邪恶的化身!哇!听起来真有趣!
每天,你都可以在城里选择不同的活动。这包括仅在特定日期发生的特殊事件,因此我们将游戏内的天数编号为 1, 2, 3, 4, ....。
其中一个特殊事件是出现一位商人,他出售有助于你编程之旅的稀有独家物品,例如 RGB 键盘、电竞椅和脑细胞。
根据以下规则,该商人仅在特定日期出现:你可以选择商人第一次出现的日期,从那时起,商人每 $k$ 天出现一次。形式化地说,$k$ 的值是固定的,但你可以要求商人第一次在某一天 $s$ 出现,这意味着商人会在 $s, s+k, s+2k, s+3k, \dots$ 这些天出现。
商人的商品也会根据日期而变化!商人有 $n$ 种不同的待售物品,每种物品仅在一段时间内出售。第 $i$ 种物品仅在第 $L_i$ 天到第 $R_i$ 天(包含边界)期间出售。当然,只有当商人在某件物品的出售日期内出现时,你才能购买该物品。
给定 $k$ 以及每种物品的描述。如果你能最优地选择 $s$(商人第一次到达的日期),那么你能从商人那里获得的最大不同物品数量是多少?
输入格式
输入的第一行包含两个空格分隔的整数 $n$ 和 $k$。
接下来 $n$ 行,其中第 $i$ 行包含两个空格分隔的整数 $L_i$ 和 $R_i$。
数据范围
- $1 \le n \le 2 \cdot 10^5$
- $1 \le k \le 10^9$
- $1 \le L_i \le R_i \le 10^9$ 对于每个 $i$
输出格式
输出一个整数,表示你能从商人那里获得的最大不同物品数量。
样例
输入 1
3 5 2 6 6 11 16 21
输出 1
3
输入 2
8 4 2 4 9 10 1 2 4 5 5 7 2 10 11 11 11 13
输出 2
6
输入 3
4 100 100 101 101 102 102 103 103 104
输出 3
2