#arc061c. [arc061_c]Snuke's Subway Trip

[arc061_c]Snuke's Subway Trip

問題文

すぬけ君の住んでいる街には地下鉄が走っています。駅は全部で NN 個あり、路線は全部で MM 本あります。 駅には 11 から NN までの整数が付けられています。また、それぞれの路線はある 11 つの会社によって運営されており、 それぞれの会社には会社をあらわす整数がつけられています。

ii 番目 ( 1leqileqM1 \\leq i \\leq M ) の路線は、駅 pip_i と 駅 qiq_i を相互に結んでいます。途中に他の駅はありません。 また、この路線は会社 cic_i によって運営されています。 同じ駅を通る路線が複数あるときは、その駅で乗り換えることができます。

それぞれの会社について、同じ会社の路線を使い続ける限り料金は 11 ですが、別の会社の路線に乗り換えるたびに新たに料金が 11 かかります。 ある会社を利用し、別の会社を利用してからまた最初の会社を利用する場合でも、再び料金を払う必要があります。

すぬけ君は、駅 11 を出発し、地下鉄を利用して駅 NN に行きたいです。移動にかかる料金の最小値を求めてください。

制約

  • 2leqNleq1052 \\leq N \\leq 10^5
  • 0leqMleq2×1050 \\leq M \\leq 2×10^5
  • 1leqpileqN1 \\leq p_i \\leq N (1leqileqM)(1 \\leq i \\leq M)
  • 1leqqileqN1 \\leq q_i \\leq N (1leqileqM)(1 \\leq i \\leq M)
  • 1leqcileq1061 \\leq c_i \\leq 10^6 (1leqileqM)(1 \\leq i \\leq M)
  • pineqqip_i \\neq q_i (1leqileqM)(1 \\leq i \\leq M)

入力

入力は以下の形式で標準入力から与えられる。

NN MM p1p_1 q1q_1 c1c_1 : pMp_M qMq_M cMc_M

出力

移動にかかる料金の最小値を出力せよ。すぬけ君が駅 NN に到達することが不可能な場合には、代わりに -1 を出力せよ。


入力例 1

3 3
1 2 1
2 3 1
3 1 2

出力例 1

1

112233 と会社 11 の路線を使って移動することができ、この場合必要なコストは 11 です。


入力例 2

8 11
1 3 1
1 4 2
2 3 1
2 5 1
3 4 3
3 6 3
3 7 3
4 8 4
5 6 1
6 7 5
7 8 5

出力例 2

2

1133225566 と会社 11 の路線を利用し、その後 667788 と会社 55 の路線を利用することで、コスト 22 で目的地に到達できます。


入力例 3

2 0

出力例 3

-1