#codefestivalmorningeasyc. [code_festival_morning_easy_c]身体バランス

[code_festival_morning_easy_c]身体バランス

问题描述

C先生很喜欢斜挎包。
然而,由于被告知只在一侧肩上挂包会导致身体歪斜,所以他决定尽量让两侧肩膀上的包挂同样的时间。

C先生所居住的国家有nn个城市和mm条连接城市的道路。
对于任意两条不同的道路,连接的两个城市都不相同。

有一天,C先生需要从城市ss移动到城市tt
因此,他希望在途中的城市uu处只更换一次包,并使得左右肩上挂包的时间相同。
然而,C先生非常强大且快速,从城市ss到城市uu,从城市uu到城市tt的移动将走最短路径。

请找出是否存在这样的选择城市uu


输入

输入以以下格式给出。

nn mm ss tt x1x_1 y1y_1 d1d_1 x2x_2 y2y_2 d2d_2 ... xmx_m ymy_m dmd_m

  • 第一行包含两个整数nn (3n1,0003 \leq n \leq 1{,}000)和mm (1mmin(n(n1)/2,104)1 \leq m \leq min(n(n-1)/2, 10^4)),分别表示城市数和道路数。
  • 每个城市都被分配了从11nn的编号。
  • 第二行包含两个整数ss (1sn1 \leq s \leq n)和tt (1tn1 \leq t \leq n),表示出发城市和目的地城市。
  • 接下来的mm行给出每条道路的信息。
  • 对于第ii条道路,xi,yix_i, y_i (1xi,yin1 \leq x_i, y_i \leq nxiyix_i \neq y_i)和did_i (1di1,0001 \leq d_i \leq 1{,}000)表示通过第ii条道路从城市xix_i到城市yiy_i需要did_i的时间。
  • 保证可以从城市ss到达城市tt

输出

如果存在满足条件的城市uu,则输出该城市的编号。如果存在多个答案,可以输出任意一个。

如果不存在这样的城市uu,则输出-1

最后换行,不要有额外的字符或空行。


示例1

3 3
1 2
1 3 3
3 2 3
1 2 1

输出示例1

3

当从城市1移动到城市2时,经过城市3,需要3的时间,然后从城市3移动到城市2,同样需要3的时间,因此只需要经过城市3并在那里更换包即可。


示例2

4 4
1 3
1 2 2
1 4 3
2 4 3
3 4 5

输出示例2

-1

按照12431 \to 2 \to 4 \to 3的顺序移动,可以通过在城市4更换包来使左右肩承担的负担相同,但C先生会选择从城市1到城市4的最短路径,因此无法进行此类移动。