#include <bits/stdc++.h>
using namespace std;
#define ll long long
struct node{
ll from,to,v;
}a[2000010];
bool cmp(node a,node b){
return a.v<b.v;
}
ll fa[2000010];
ll find(ll x){
if(fa[x]==x){
return x;
}
else{
fa[x]=find(fa[x]);
return fa[x];
}
}
void un(ll x,ll y){
fa[find(x)]=find(y);
}
bool b[2000010];
ll n,m,ans,t;
int main( ){
cin>>n>>m;
for(int i=1;i<=n;i++){
fa[i]=i;
}
for(int i=1;i<=m;i++){
cin>>a[i].from>>a[i]. to>>a[i].v;
}
sort(a+1,a+m+1,cmp);
for(int i=1;i<=m;i++){
if(find(a[i].from)!=find(a[i].to)){
ans+=a[i].v;
un(a[i].from,a[i].to);
t++;
if(t==n-1) break;
}
}
cout<<ans;
return 0;
}