你正在参加一场比赛,比赛内容是沿着一条线段从西向东穿越埃及。初始时,你位于线段的最西端。比赛规则要求你必须始终沿着线段移动,且方向始终向东。
线段上有 $N$ 个传送器。每个传送器有两个端点。每当你到达其中一个端点时,传送器会立即将你传送到另一个端点。(注意,根据你到达的传送器端点,传送可能会将你传送到当前位置的东侧或西侧。)被传送后,你必须继续沿线段向东移动;你无法避开路径上的任何传送器端点。任意两个传送器端点都不会位于同一位置。所有端点都严格位于线段的起点和终点之间。
每次被传送,你都会获得 1 分。比赛的目标是尽可能多地获得分数。为了最大化得分,你可以在开始旅程前在线段上添加最多 $M$ 个新传送器。使用新传送器同样可以获得分数。
你可以将新传送器的端点设置在任何你想要的位置(甚至是坐标非整数的位置),只要它们不占用已被其他端点占据的位置即可。也就是说,所有传送器端点的位置必须是唯一的。此外,新传送器的端点必须严格位于线段的起点和终点之间。
注意,题目保证无论你如何添加传送器,你总能到达线段的终点。
题目描述
编写一个程序,给定 $N$ 个传送器的端点位置以及你可以添加的新传送器数量 $M$,计算你能获得的最大分数。
数据范围
$1 \le N \le 1,000,000$:线段上初始的传送器数量。 $1 \le M \le 1,000,000$:你可以添加的新传送器的最大数量。 $1 \le W_X < E_X \le 2,000,000$:传送器 $X$ 的西端点和东端点距离线段起点的距离。
输入格式
程序必须从标准输入读取以下数据: 第 1 行包含整数 $N$,即线段上初始的传送器数量。 第 2 行包含整数 $M$,即你可以添加的新传送器的最大数量。 * 接下来的 $N$ 行,每行描述一个传送器。第 $i$ 行描述第 $i$ 个传送器。每行包含两个整数 $W_i$ 和 $E_i$,中间用空格分隔。它们分别代表传送器西端点和东端点距离线段起点的距离。
给定传送器的任意两个端点都不会重合。你所行进的线段起点为位置 0,终点为位置 2,000,001。
输出格式
程序必须向标准输出写入一行,包含一个整数,即你能获得的最大分数。
子任务
在分值为 30 分的测试数据中,$N \le 500$ 且 $M \le 500$。
样例
样例输入 1
3 1 10 11 1 4 2 3
样例输出 1
6
第一幅图显示了带有三个原始传送器的线段。第二幅图显示了在添加了一个端点位于 0.5 和 1.5 的新传送器后的同一线段。
在如图所示添加新传送器后,你的行程如下: 你从位置 0 出发,向东移动。 你到达位置 0.5 的端点并被传送到位置 1.5(你获得 1 分)。 你继续向东移动并到达位置 2 的端点;你被传送到位置 3(你获得 2 分)。 你到达位置 4 的端点,并被传送到 1(你获得 3 分)。 你到达位置 1.5 的端点,并被传送到 0.5(你获得 4 分)。 你到达位置 1 的端点,并被传送到 4(你获得 5 分)。 你到达位置 10 的端点,并被传送到 11(你获得 6 分)。 你继续移动直到到达线段终点,最终总得分为 6 分。
样例输入 2
3 3 5 7 6 10 1999999 2000000
样例输出 2
12