#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define endl '\n' #define PI acos(-1) #define PB push_back #define ll long long #define INF 0x3f3f3f3f #define mod 1000000007 #define pll pair #define lowbit(abcd) (abcd & (-abcd)) #define max(a, b) ((a > b) ? (a) : (b)) #define min(a, b) ((a < b) ? (a) : (b)) #define IOS \ ios::sync_with_stdio(false); \ cin.tie(0); \ cout.tie(0); #define FRE \ { \ freopen("in.txt", "r", stdin); \ freopen("out.txt", "w", stdout); \ } inline ll read() { ll x = 0, f = 1; char ch = getchar(); while (ch < '0' || ch > '9') { if (ch == '-') f = -1; ch = getchar(); } while (ch >= '0' && ch <= '9') { x = (x << 1) + (x << 3) + (ch ^ 48); ch = getchar(); } return x * f; } //============================================================================== ll fa[3010]; ll sum[3010], n, m; void init() { for (int i = 1; i <= n; i++) fa[i] = i; fill(sum, sum + 3001, 0); } ll find(ll x) { if (fa[x] == x) return x; return fa[x] = find(fa[x]); } void mix(ll a, ll b) { ll fa1 = find(a), fb1 = find(b); if (fa1 != fb1) fa[fa1] = fb1; } int main() { while (cin >> n >> m) { init(); ll u, v, w; for (int i = 1; i <= m; i++) { cin >> u >> v >> w; if (u == v) continue; sum[v] += w, sum[u] += w; mix(u, v); } ll flag = 0; for (int i = 1; i <= n; i++) if (find(i) == i) flag++; if (flag > 1) cout << 0 << endl; else { ll ans = INF; for (int i = 1; i <= n; i++) ans = min(ans, sum[i]); cout << ans << endl; } } return 0; }