#include #include #include #include #include #include #include #include #include #include #include #define maxn 3010 #define maxm 200010 using namespace std; int n, m; int cost[maxn]; int p[maxn], vis[maxn]; int find(int x) { if (p[x] != x) return p[x] = find(p[x]); return x; } int main() { while (cin >> n >> m) { memset(vis, 0, sizeof vis); memset(cost, 0, sizeof cost); for (int i = 1; i <= n; i ++ ) p[i] = i; for (int i = 1; i <= m; i ++ ) { int a, b, c; scanf("%d%d%d", &a, &b, &c); if (a == b) continue; cost[a] += c, cost[b] += c; int pa = find(a), pb = find(b); p[pa] = pb; } for (int i = 1; i <= n; i ++ ) { int pi = find(i); vis[pi] = 1; } int flag = 0; for (int i = 1; i <= n; i ++ ) if (vis[i]) flag ++ ; if (flag != 1) puts("0"); else { int res = 1e9; for (int i = 1; i <= n; i ++ ) res = min(res, cost[i]); printf("%d\n", res); } } return 0; }