#include using namespace std; const int N = 3005; const int M = 200005; int n, m, id; int head[N]; struct Edge { int to, next, w; } e[M]; void addEdge(int x, int y, int w) { e[++id].next = head[x]; head[x] = id; e[id].to = y; e[id].w = w; } int main() { while (scanf("%d%d", &n, &m) == 2) { id = 0; memset(head, -1, sizeof head); for (int x, y, w, i = 1; i <= m; ++i) { scanf("%d%d%d", &x, &y, &w); if (x == y) continue; addEdge(x, y, w); addEdge(y, x, w); } int ans = INT_MAX; for (int u = 1; u <= n; ++u) { int sum = 0; for (int i = head[u]; i != -1; i = e[i].next) sum += e[i].w; ans = min(ans, sum); } printf("%d\n", ans); } return 0; }