#yuki-1344 import heapq N, M = map(int, input().split()) Edge = [set() for _ in range(N)] for _ in range(M): s, t, d = map(int, input().split()) s -= 1 t -= 1 Edge[s].add((d, t)) for i in range(N): used = [True]*N edgelist = [] for e in Edge[i]: heapq.heappush(edgelist, e) used[i] = False cost = [0]*N while len(edgelist) != 0: minedge = heapq.heappop(edgelist) if used[minedge[1]]: v = minedge[1] used[v] = False cost[v] = minedge[0] for e in Edge[v]: if used[e[1]]: heapq.heappush(edgelist, (e[0]+minedge[0], e[1])) print(sum(cost))