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

[code_festival_morning_easy_c]身体バランス

問題文

C さんは斜めがけの鞄を愛用しています。
しかし、片方の肩にばかり鞄をかけていると、身体が歪んでしまうと言われたため、両方の肩に同じ時間だけ鞄をかけるように心がけることにしています。

C さんの住んでいる国には、nn 個の街と、街同士をつなぐ mm 個の道があります。
どの 22 つの異なる道に関しても、結んでいる 22 つの街同士が一致することはありません。

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

  • 11 行目には、街の数を表す整数 nn (3leqnleq1,0003 \\leq n \\leq 1{,}000) と、道の数を表す整数 mm (1leqmleqmin(n(n1)/2,104)1 \\leq m \\leq min(n(n-1)/2, 10^4)) が与えられる。
  • 街にはそれぞれ 11 から nn までの番号が振られている。
  • 22 行目には、出発する街の番号を表す整数 ss (1leqsleqn1 \\leq s \\leq n) と、目的地の街の番号を表す整数 tt (1leqtleqn1 \\leq t \\leq n) が与えられる。
  • 続く mm 行には、各道の情報が与えられる。
  • xi,yix_i, y_i (1leqxi,yileqn1 \\leq x_i, y_i \\leq n かつ xineqyix_i \\neq y_i) と did_i (1leqdileq1,0001 \\leq d_i \\leq 1{,}000) は、ii 番目の道によって街 xix_i と街 yiy_i の間を移動するのに did_i の時間がかかることを意味する。
  • ss から街 tt へは到達可能であることが保証される。

出力

答えとなる街 uu が存在する場合は、その街の番号を 11 行で出力せよ。

答えの候補が複数ある場合は、どれを出力してもよい。

また、そのような街 uu が無い場合は -1 を出力せよ。

最後は改行し、余計な文字、空行を含まないこと。


入力例1


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

出力例1


3

11 から街 22 へ行く際に、街 33 を経由した場合、131 → 333 の時間がかかり、323 → 233 の時間がかかるため、街 33 を経由して、そこで鞄を持ち替えればよい。


入力例2


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

出力例2


-1

12431 → 2 → 4 → 3 という順に移動すれば、街 44 で鞄を持ち替えることで左右にかかる負担を同じにすることができるが、C さんは街 11 から街 44 まで最短経路を通るので、このような移動のしかたはできない。