#joi2020hod. [joi2020ho_d]オリンピックバス (Olympic Bus)

[joi2020ho_d]オリンピックバス (Olympic Bus)

JOI 国には NN 個の都市があり,11 から NN までの番号が付いている.また,都市と都市を一方向に結ぶ MM 本のバス路線があり,11 から MM までの番号が付いている.バス路線 ii (1leqqileqqM1 \\leqq i \\leqq M) は都市 UiU_i から都市 ViV_i へ向けて運行されており,運賃は CiC_i 円である.バス路線 ii (1leqqileqqM1 \\leqq i \\leqq M) では,都市 UiU_i 以外で乗ったり,都市 ViV_i 以外で降りることはできない.ある都市からある都市へ向けて運行されるバス路線が複数存在するかもしれない.

JOI 国では間もなくオリンピックが開催される.JOI 国の運輸大臣である KK 理事長は,バス路線を高々 11 つ選び,オリンピック期間中,運賃を変更せずにそのバス路線の運行方向を反転させることにした.つまり,バス路線 ii (1leqqileqqM1 \\leqq i \\leqq M) を選んだ場合,オリンピック期間中,そのバス路線は都市 UiU_i から都市 ViV_i へ向けて運行されるのではなく,都市 ViV_i から都市 UiU_i へ向けて運行されるようになる.ただし,バス路線 ii の運行方向の反転には DiD_i 円かかり,これは K 理事長のポケットマネーにより賄われる.また,混乱を避けるため,オリンピック期間の途中でバス路線を反転させることはできない.

運輸大臣である K 理事長は,オリンピック期間中,都市 11 と都市 NN の間をバス路線を乗り継いで往復する予定である.運行方向を反転させるバス路線をうまく選ぶことで,往復の合計運賃と運行方向の反転の費用との和を最小化したい.

都市の個数と,バス路線の情報が与えられたとき,運行方向を反転させるバス路線をうまく選ぶことで,都市 11 と都市 NN の間の往復の合計運賃と,運行方向の反転の費用との和の最小値を求めるプログラムを作成せよ.ただし,どのようにバス路線を選んでも都市 11 と都市 NN の間を往復することができない場合は,代わりに 1−1 を出力せよ.


入力

入力は以下の形式で標準入力から与えられる.入力される値はすべて整数である.

NN MM U1U_1 V1V_1 C1C_1 D1D_1 vdots\\vdots UMU_M VMV_M CMC_M DMD_M

出力

都市 11 と都市 NN の間の往復の合計運賃と,運行方向の反転の費用との和の最小値を,標準出力に 11 行で出力せよ.ただし,どのようにバス路線を選んでも都市 11 と都市 NN の間を往復することができない場合は,代わりに 1−1 を出力せよ.


制約

  • 2leqqNleqq2002 \\leqq N \\leqq 200
  • 1leqqMleqq50,0001 \\leqq M \\leqq 50\\,000
  • 1leqqUileqqN1 \\leqq U_i \\leqq N (1leqqileqqM1 \\leqq i \\leqq M).
  • 1leqqVileqqN1 \\leqq V_i \\leqq N (1leqqileqqM1 \\leqq i \\leqq M).
  • UineqViU_i \\neq V_i (1leqqileqqM1 \\leqq i \\leqq M).
  • 0leqqCileqq1,000,0000 \\leqq C_i \\leqq 1\\,000\\,000 (1leqqileqqM1 \\leqq i \\leqq M).
  • 0leqqDileqq1,000,000,0000 \\leqq D_i \\leqq 1\\,000\\,000\\,000 (1leqqileqqM1 \\leqq i \\leqq M).

小課題

  1. (55 点) Mleqq1,000M \\leqq 1\\,000
  2. (1111 点) MM は偶数,U2i1=U2iU_{2i − 1} = U_{2i}V2i1=V2iV_{2i − 1} = V_{2i}C2i1=C2iC_{2i − 1} = C_{2i} (1leqqileqqfracM21 \\leqq i \\leqq \\frac{M}{2}).
  3. (2121 点) Ci=0C_i = 0 (1leqqileqqM1 \\leqq i \\leqq M).
  4. (6363 点) 追加の制約はない.

入力例 1

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

出力例 1

10

バス路線 22 の運行方向を費用 11 で反転させると,都市 11 から都市 44 への移動にかかる運賃は最小で 66,都市 44 から都市 11 への移動にかかる運賃は最小で 33 となり,都市 11 と都市 44 の間の往復の合計運賃と,運行方向の反転の費用との和は 1010 となる.

都市 11 と都市 44 の間の往復の合計運賃と,運行方向の反転の費用との和を 1010 より小さくすることはできないので,1010 を出力する.


入力例 2

4 10
1 2 4 4
1 2 4 4
1 3 2 1
1 3 2 1
4 3 1 2
4 3 1 2
4 1 6 1
4 1 6 1
2 4 2 5
2 4 2 5

出力例 2

10

この入出力例は小課題 22 の制約を満たす.


入力例 3

4 4
1 2 0 4
1 3 0 1
4 3 0 2
4 1 0 1

出力例 3

2

この入出力例は小課題 33 の制約を満たす.


入力例 4

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

出力例 4

12

バス路線の運行方向を反転させなくてもよい.


入力例 5

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

出力例 5

-1

この入力例では,都市 44 から都市 33 へと運行されるバス路線が 22 本存在する.