import java.util.*;
public class Leetcode {
public static void main(String args[]) {
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
int m=scan.nextInt();
int cost[][]=new int[n+1][n+1];
for(int i=1;i<n+1;i++) {
for(int j=1;j<n+1;j++)
cost[i][j]=Integer.MAX_VALUE;
}
for(int i=0;i<m;i++) {
int x=scan.nextInt();
int y=scan.nextInt();
int z=scan.nextInt();
if(z<cost[x][y]) {
cost[x][y]=z;
cost[y][x]=z;
}
}
long dp[]=new long [n+1];
boolean isused[]=new boolean[n+1];
Arrays.fill(dp, Integer.MAX_VALUE);
dp[1]=0;
int res=0;
while(true) {
int v=-1;
for(int i=1;i<n+1;i++) {
if(!isused[i]&&(v==-1||dp[i]<dp[v])) v=i;
}
if(v==-1) break;
isused[v]=true;
res+=dp[v];
for(int i=1;i<n+1;i++) {
if(dp[i]>cost[v][i]) {
dp[i]=cost[v][i];
}
}
}
System.out.print(res);
}
}