#abc061d. [abc061_d]Score Attack

[abc061_d]Score Attack

問題文

NN 頂点 MM 辺の重み付き有向グラフがあります。
i(1iM)i(1≦i≦M) 番目の辺は 頂点 aia_i から 頂点 bib_i を重み cic_i で結びます。
このグラフと駒を利用して、次の1人ゲームを行います。

最初、駒を頂点 11 に置いて、プレイヤーのスコアを 00 とします。
プレイヤーは、次の条件で駒を繰り返し移動させることができます。

  • 頂点 aia_i に駒があるとき、ii 番目の辺を利用して頂点 bib_i に移動する。移動後にプレイヤーのスコアが cic_i 加算される。

頂点 NN に駒があるときのみ、ゲームを終了できます。
なお、与えられる有向グラフの上で頂点 11 から頂点 NN に移動できることは保障されています。

プレイヤーがゲーム終了時のスコアを出来るだけ大きくするような行動を取ったとき、ゲーム終了時のスコアはいくつになるでしょうか?
ゲーム終了時のスコアをいくらでも大きくできる場合は inf と出力してください。

制約

  • 2N10002≦N≦1000
  • 1Mmin(N(N1),2000)1≦M≦min(N(N-1),2000)
  • 1ai,biN(1iM)1≦a_i,b_i≦N (1≦i≦M)
  • aibi(1iM)a_i≠b_i (1≦i≦M)
  • aiaja_i≠a_j または bibj(1i<jM)b_i≠b_j (1≦i<j≦M)
  • \-109ci109(1iM)\-10^9≦c_i≦10^9 (1≦i≦M)
  • cic_i は整数である。
  • 与えられるグラフには、頂点 11 から頂点 NN への経路が存在する。

入力

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

NN MM
a1a_1 b1b_1 c1c_1
a2a_2 b2b_2 c2c_2 ::
aMa_M bMb_M cMc_M

出力

もし、ゲーム終了時のスコアをいくらでも大きくできる場合は inf、そうでない場合はゲーム終了時のスコアの最大値を出力せよ。


入力例 1

3 3
1 2 4
2 3 3
1 3 5

出力例 1

7

駒を頂点 N=3N=3 に移動できる経路は以下の 22 通りです。

  • 頂点 11 → 頂点 22 → 頂点 33 : スコア 4+3=74+3=7
  • 頂点 11 → 頂点 33 : スコア 55

したがって、ゲーム終了時のスコアの最大値は 77 となります。


入力例 2

2 2
1 2 1
2 1 1

出力例 2

inf

頂点 11 → 頂点 22 → 頂点 11 → 頂点 22 … と移動することで、ゲーム終了時のスコアをいくらでも増やせます。


入力例 3

6 5
1 2 -1000000000
2 3 -1000000000
3 4 -1000000000
4 5 -1000000000
5 6 -1000000000

出力例 3

-5000000000