AT_agc045_e [AGC045E] Fragile Balls

Description

[problemUrl]: https://atcoder.jp/contests/agc045/tasks/agc045_e $ 1 $ から $ N $ までの番号の付いた $ N $ 個の箱があります. また,$ 1 $ から $ M $ までの番号の付いた $ M $ 個のボールがあります. 現在,ボール $ i $ は箱 $ A_i $ に入っています. あなたは,以下の操作を行えます. - 現在ボールが $ 2 $ 個以上入っている箱を $ 1 $ つ選ぶ. そして,その箱からボールを $ 1 $ つ選んで取り出し,別の箱に入れる. ただし,ボールは非常に壊れやすいため,ボール $ i $ は合計で $ C_i $ 回より多く移動させることはできません. 逆に,ボールが壊れない限り,何度でもボールの移動は行なえます. あなたの目標は,すべての $ i $ ($ 1\ \leq\ i\ \leq\ M $)について,ボール $ i $ が箱 $ B_i $ に入っているようにすることです. この目的が達成可能かどうか判定してください. また可能な場合は,目標を達成するのに必要な操作回数の最小値を求めてください.

Input Format

入力は以下の形式で標準入力から与えられる. > $ N $ $ M $ $ A_1 $ $ B_1 $ $ C_1 $ $ A_2 $ $ B_2 $ $ C_2 $ $ \vdots $ $ A_M $ $ B_M $ $ C_M $

Output Format

目標が達成不可能な場合は $ -1 $ を,達成可能な場合は必要な操作回数の最小値を出力せよ.

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 10^5 $ - $ 1\ \leq\ M\ \leq\ 10^5 $ - $ 1\ \leq\ A_i,B_i\ \leq\ N $ - $ 1\ \leq\ C_i\ \leq\ 10^5 $ - 目標とする状態において,どの箱にも $ 1 $ つ以上のボールが入っている. つまり,すべての $ i $ ($ 1\ \leq\ i\ \leq\ N $) について,$ B_j=i $ を満たす $ j $ が存在する. ### Sample Explanation 1 以下のように $ 3 $ 回の操作を行えば良いです. - 箱 $ 1 $ からボール $ 1 $ を取り出し,箱 $ 2 $ に入れる. - 箱 $ 2 $ からボール $ 2 $ を取り出し,箱 $ 1 $ に入れる. - 箱 $ 1 $ からボール $ 3 $ を取り出し,箱 $ 3 $ に入れる.