#CF2126D. 这是最后一次

这是最后一次

每次测试的时间限制:2 秒
每次测试的内存限制:256 兆字节

题目描述

你有 nn 个赌场,编号从 11nn。每个赌场由三个整数描述:lil_irir_irealireal_ilirealiril_i \le real_i \le r_i)。你最初有 kk 枚硬币。

你只能在当前硬币数量 xx 满足 lixril_i \le x \le r_i 时,才能在赌场 ii 进行游戏。游戏后,你的硬币数量会变为 realireal_i

你可以按任意顺序访问赌场,并且不必访问所有赌场。每个赌场最多只能访问一次。

你的任务是找出你能获得的最大最终硬币数量。

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4)——测试用例的数量。

每个测试用例的第一行包含两个整数 nnkk1n1051 \le n \le 10^50k1090 \le k \le 10^9)——赌场的数量和初始硬币数量。

接下来 nn 行,第 ii 行包含三个整数 lil_irir_irealireal_i0lirealiri1090 \le l_i \le real_i \le r_i \le 10^9)——第 ii 个赌场的参数。

保证所有测试用例的 nn 之和不超过 10510^5

输出格式

对于每个测试用例,输出一个整数——在最优选择赌场访问顺序后,你能获得的最大硬币数量。

5
3 1
2 3 3
1 2 2
3 10 10
1 0
1 2 2
1 2
1 2 2
2 2
1 3 2
2 4 4
2 5
1 10 5
3 6 5
10
0
2
4
5

数据规模与约定

在第一个测试用例中,你可以先在第二个赌场进行游戏,之后你将拥有 22 枚硬币。然后你可以在第一个赌场进行游戏,硬币数量增加到 33。最后在第三个赌场进行游戏后,你将拥有 1010 枚硬币——这是可能的最大数量。

在第二个测试用例中,你没有钱,因此无法赚取更多。

在第四个测试用例中,直接去第二个赌场游戏并赚取 44 枚硬币是有利的。