#include<bits/stdc++.h>
using namespace std;
struct node{int v,w;};
vector<node> G[50100];
int n,m,d[50100],vt[50100],sum;
int main(){
cin>>n>>m;
for(int j=1;j<=n;j++){
int x,y,z;
cin>>x>>y>>z;
G[x].push_back((node){y,z});
G[y].push_back((node){x,z});
}
memset(d,0x3f,sizeof(d));
vt[1]=1;
for(int i=0;i<G[1].size();i++){
int v=G[1][i].v,w=G[1][i].w;
d[v]=min(d[v],w);
}
for(int j=1;j<=n-1;j++){
int k=-1,mn=0x3f3f3f3f;
for(int i=2;i<=n;i++){
if(!vt[i]&&d[i]<mn){
mn=d[i];
k=i;
sum+=d[k];
vt[k]=1;
}
}
for(int i=0;i<G[k].size();i++){
int v=G[k][i].v,w=G[k][i].w;
d[v]=min(d[v],w);
}
}
cout<<sum;
return 0;
}