#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
struct ty{
int u,w,v;
bool operator<(const ty x){
return v < x.v;
}
}a[maxn];
int n,m,i;
int fa[maxn];
int find(int a)
{
if(fa[a] == a)
{
return a;
}
else
{
return fa[a]=find(fa[a]);
}
}
int join(int a,int b)
{
if(find(a) != find(b)){
fa[find(a)]=b;
return 1;
}
return 0;
}
int main()
{
cin >> n >> m;
for(i=1;i<=n;i++){
fa[i]=i;
}
for(i=1;i<=m;i++){
cin >> a[i].u >> a[i].w >> a[i].v;
}
sort(a+1,a+1+m);
long long ans=0;
for(i=1;i<=m;i++)
{
if(join(a[i].u,a[i].w)){
ans+=a[i].v;
}
}
cout << ans;
}