大鱼吃小鱼
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

现在小w正在玩一款经典游戏——大鱼吃小鱼。

游戏规则如下:玩家操控一条初始重量为 \mathrm{x} 的鱼,它的目标是吃掉所有不超过自身当前重量的鱼。每当吃掉一条重量为 \mathrm{y} 的鱼,那么自身重量也会立即增长 \mathrm{y}

在游戏过程中,共会陆续出现 \mathrm{n} 条鱼。其中第 \mathrm{i} 条鱼重 \mathrm{y_i},其出现时间段为 \mathrm{\left[l_i,r_i\right)},即这条鱼会在时刻 \mathrm{l_i} 出现,并在时刻 \mathrm{r_i} 前消失包含 \mathrm{l_i} 但不包含 \mathrm{r_i}。只有当前时刻位于 \mathrm{\left[l_i,r_i\right)} 时,小w才能操作自己的鱼去吃掉它。

鉴于小w的手速非凡,吃鱼的耗时可以忽略不计。不过最近他懒癌犯了,因此他打算只选择某一时刻进行捕食,并最大化他的鱼的重量。请计算他的鱼可能达到的最大重量。

输入描述:

第一行给出一个整数 \mathrm{T}(\mathrm{1 \le T \le 5\times 10^4}) ,表示数据组数。

对于每组测试数据:

第一行给出两个整数 \mathrm{n,x}(\mathrm{1 \le n \le 10^5},\mathrm{\sum n \le 10^5},\mathrm{1 \le x \le 10^9}) ,表示鱼的总数与小w鱼的初始重量。

后面 \mathrm{n} 行,每行为三个整数 \mathrm{l_i,r_i,y_i}(\mathrm{1 \le l_i < r_i \le 10^9},\mathrm{1 \le y_i \le 10^9})

输出描述:

一个整数,为小w的鱼可能达到的最大重量。
示例1

输入

复制
2
2 17
3 4 9
9 11 8
4 1
1 2 2
2 4 1
3 5 2
4 5 3

输出

复制
26
4

说明

第一组样例中,小w鱼的初始重量为17,第一条鱼出现时间段为 \mathrm{[3,4)},重量 \mathrm{9}第二条鱼出现时间段为 \mathrm{[9,11)},重量 \mathrm{8} 。显然选择 \mathrm{[3,4)} 内的任意时刻进行捕食最优。

第二组样例中,小w鱼的初始重量为1,四条鱼的出现时间段与重量依次为:时间段 \mathrm{[1,2)},重量 \mathrm{2} ;时间段 \mathrm{[2,4)},重量 \mathrm{1} ;时间段 \mathrm{[3,5)},重量 \mathrm{2} ;时间段 \mathrm{[4,5)},重量 \mathrm{3} 。显然选择 \mathrm{[3,4)} 内的任意时刻进行捕食最优。
示例2

输入

复制
1
10 20
13 14 41
10 29 3
3 12 25
10 22 69
12 22 11
14 24 34
18 35 6
5 15 59
8 9 21
18 22 41

输出

复制
196