public void Solve() { int N = Reader.Int(), M = Reader.Int(); var Es = Reader.IntTable(M); var flow = new MinCostFlow(N); foreach (var e in Es) { e[0]--; e[1]--; flow.AddEdge(e[0], e[1], 1, e[2]); if (e[0] != 0) { flow.AddEdge(e[1], e[0], 1, e[2]); } } int ans = MinCostFlow.INF; for (int a = 1; a < N; a++) { ans = Math.Min(ans, flow.Run(0, a, 2, ans)); } if (ans == MinCostFlow.INF) { ans = -1; } Console.WriteLine(ans); }