AT_arc212_b [ARC212B] Stones on Grid

Description

$ N $ 行 $ N $ 列のグリッドがあります。上から $ i $ 行目、左から $ j $ 列目のマスをマス $ (i,j) $ と呼びます。 あなたは $ i=1,2,\ldots,M $ の順に以下を行います。 - 操作 $ i $ : マス $ (x_i, y_i) $ に石を $ 1 $ つ置くか、石を置かないかどちらかを選ぶ。石を置いた場合はコストが $ c_i $ かかり、置かなかった場合はコストがかからない。 ただし、「**操作 $ 1 $ では必ず石を置く**」という条件を守る必要があります。 以下の目標を達成できるか判定し、達成できる場合はかかるコストの和の最小値を求めてください。 - 目標 : 任意の $ i \ (1 \leq i \leq N) $ について、 $ i $ 行目に置かれた石の数と $ i $ 列目に置かれた石の数が等しい。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $ $ x_1 $ $ y_1 $ $ c_1 $ $ x_2 $ $ y_2 $ $ c_2 $ $ \vdots $ $ x_M $ $ y_M $ $ c_M $

Output Format

目標を達成することが不可能なら `-1` と出力せよ。 達成できる場合はかかるコストの和の最小値を出力せよ。

Explanation/Hint

### Sample Explanation 1 操作 $ 1,2,5 $ で「石を置く」を選ぶことで、目標を達成することができます。 このときのコストの和は $ 5+2+4=11 $ となります。目標を達成するためにコストを $ 11 $ 未満にすることはできないため、答えは $ 11 $ です。 ### Sample Explanation 2 操作 $ 1 $ では必ず石を置くという条件に従う必要があります。 ### Constraints - $ 1 \le N, M \le 2 \times 10^5 $ - $ 1 \le x_i, y_i \le N $ - $ 1 \le c_i \le 10^9 $ - $ (x_i, y_i) $ は相異なる - 入力される値は全て整数