3885 - BARICA

Barica 是一只非同寻常的青蛙。她住在一个池塘里,有 N 片漂浮在水面上的荷叶。这些荷叶的编号为 1N,位置可以用一对坐标表示。Barica 可以在这些荷叶上跳来跳去,但是她害怕斜着跳和朝负方向跳。

准确的说,她可以从坐标 (x_1,y_1) 跳到另一个坐标 (x_2,y_2) 仅当:

  • x_2>x_1y_2=y_1 或者

  • y_2>y_1x_2=x_1

对于每一片荷叶,我们知道其附近的苍蝇数量。Barika 可以吃掉所有在她荷叶附近的苍蝇。

Barica 每吃一只苍蝇会获得 1 个单位的能量,每进行一次跳跃消耗 K 个单位的能量。如果 Barica 没有足够的能量,她就不能进行跳跃。

Barica 想通过 1 号植物到达 N 号植物,并获得尽可能多的能量。Barica 开始时没有能量,必须通过吃掉 1 号植物附近的苍蝇来获取能量。

找到使得 Barica 达到目标的一种可行路径。

输入

第一行,两个整数 NK

接下来 N 行,每行包含三个整数 x_iy_iz_i,表示第 i 号荷叶的坐标为 (x_i,y_i),且其附近有 z_i 只苍蝇。

输出

第一行,输出到达终点后能量单位数量。

第二行,输出一个整数 L,表示 Barica 需要经过的植物个数。必须包含 1 号和 N 号植物。

接下来 L 行,依次输出 Barica 需要经过的植物坐标。

样例

输入

6 5
1 1 5
2 1 5
1 2 4
2 3 5
3 2 30
3 3 5

输出

5
4
1 1
2 1
2 3
3 3

输入

8 10
1 1 15
2 2 30
1 2 8
2 1 7
3 2 8
2 3 7
4 2 100
3 3 15

输出

36
5
1 1
1 2
2 2
3 2
3 3

输入

9 5
5 5 10
6 5 2
7 5 1
5 6 2
6 6 6
7 6 2
5 7 1
6 7 2
7 7 1

输出

2
3
5 5
7 5
7 7

提示

对于 100\% 的数据,2\le N\le 3\times 10^51\le K\le 10000\le x_i,y_i\le 10^50\le z_i\le 1000

来源

COCI

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题