import sys sys.setrecursionlimit(10**6) V, E = map(int, input().split()) edges = [] for _ in range(E) : u, v, w = map(int, input().split()) edges.append((w,u,v)) edges.sort() parent = [i for i in range(V+1)] total_weight = 0 def find_parent(x) : if x != parent[x] : parent[x] = find_parent(parent[x]) return parent[x] def union_parent(x, y) : parentX = find_parent(x) parentY = find_parent(y) if parentX < parentY : parent[parentY] = parentX else : parent[parentX] = parentY for w, u, v in edges : if find_parent(u) != find_parent(v) : total_weight += w union_parent(u, v) print(total_weight)