你最近发现你的农田里埋藏着宝藏。大量的宝藏!你很快决定在土地周围围上栅栏。
可惜,你只有一个栅栏桩!你必须开车去镇上买更多的围栏材料。但你不能就这样把土地敞开着,所以你决定在离开期间搭建一个临时栅栏来保护部分宝藏。你将把桩子钉在地上,并在谷仓墙壁的两侧和栅栏桩之间拉起一条直线,围出一个三角形区域。此外,地面非常坚硬:只有挖掘过宝藏的地方才足够松软,可以让你快速地安放栅栏桩。
为了找出最佳方案,你首先需要进行以下计算。对于田里的每一个宝藏,如果你把栅栏桩放在该宝藏处并按上述方式完成栅栏,那么被栅栏围住的所有宝藏的总价值是多少?注意,你放置桩子处的宝藏不被视为被栅栏围住(因为有人可能会在桩子周围挖掘,这可能不安全)。
样例输入 1 如下图所示。包含点 $(-1, 10)$ 的三角形恰好围住了另外两个宝藏点,它们的总价值为 $4 + 8 = 12$。
输入格式
第一行包含两个整数 $n$ ($1 \le n \le 10^5$) 和 $x$ ($1 \le x \le 10^9$),其中 $n$ 是宝藏点的数量,$x$ 确定了谷仓墙壁的两个角,位置分别为 $(0, 0)$ 和 $(x, 0)$。
接下来的 $n$ 行,每行包含三个整数 $x_i, y_i$ 和 $v_i$ ($-10^9 \le x_i \le 10^9, 1 \le y_i \le 10^9, 1 \le v_i \le 10^9$),给出了其中一个宝藏点的位置 $(x_i, y_i)$ 和价值 $v_i$。所有这些点都是不同的。此外,保证对于每个点,它与谷仓墙壁形成的三角形边界上不会包含任何其他宝藏点。
输出格式
输出 $n$ 行,按输入顺序为每个宝藏点输出一行。对于每个点,输出一个整数,表示该点与谷仓墙壁形成的三角形内部所有点的总价值。注意,该点自身的价值应从总和中排除。
样例
样例输入 1
5 8 -8 1 1 -1 10 2 0 3 4 7 1 8 8 2 16
样例输出 1
0 12 0 0 8
样例输入 2
6 6 0 1 1 2 3 10 2 5 100 3 1 1000 3 5 10000 4 5 100000
样例输出 2
0 1000 1010 0 1010 1000