#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll MAXN = 200005;
#define fi first
#define se second
#define pr pair<int,pair<int,int>>
vector <vector<pair<int,int>>> A(MAXN);
vector <pr> vet;
priority_queue<pr,vector<pr>,greater<pr>> Q;
void prim(int u,int n){
vector <bool> ktra(n+1,true);
ll ans=0;
for(auto [c,t]:A[u]) Q.push({t,{u,c}});
ktra[u]=false;
while(!Q.empty()){
auto canh=Q.top(); Q.pop();
ll trongso=canh.fi, dau=canh.se.fi, cuoi=canh.se.se;
if(!ktra[cuoi]) continue;
ans+=trongso;
//cout << "(" <<dau <<","<<cuoi<<")" << " = " << trongso << "\n";
//vet.push_back({trongso,{dau,cuoi}});
ktra[cuoi]=false;
for(auto it:A[cuoi]){
if(ktra[it.fi]){
Q.push({it.se,{cuoi,it.fi}});
}
}
}
cout << ans <<"\n";
}
int main(){
//ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
ll n,m; cin >> n >> m;
for(ll i=1 ; i<=m ; i++){
ll z,x,y; cin >> x >> y >> z;
A[x].push_back({y,z});
A[y].push_back({x,z});
}
prim(1,n);
/*
for(ll i=1 ; i<=n ; i++){
cout << i << " : ";
for(auto [x,y]:A[i]) cout << x << "-" << y << " ";
cout << endl;
}
*/
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCmNvbnN0IGxsIE1BWE4gPSAyMDAwMDU7CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwciBwYWlyPGludCxwYWlyPGludCxpbnQ+PgoKCnZlY3RvciA8dmVjdG9yPHBhaXI8aW50LGludD4+PiBBKE1BWE4pOwp2ZWN0b3IgPHByPiB2ZXQ7CnByaW9yaXR5X3F1ZXVlPHByLHZlY3Rvcjxwcj4sZ3JlYXRlcjxwcj4+IFE7Cgp2b2lkIHByaW0oaW50IHUsaW50IG4pewoJdmVjdG9yIDxib29sPiBrdHJhKG4rMSx0cnVlKTsKICAgIGxsIGFucz0wOwogICAgZm9yKGF1dG8gW2MsdF06QVt1XSkgUS5wdXNoKHt0LHt1LGN9fSk7CiAgICBrdHJhW3VdPWZhbHNlOwogICAgd2hpbGUoIVEuZW1wdHkoKSl7CiAgICAgICAgYXV0byBjYW5oPVEudG9wKCk7IFEucG9wKCk7CiAgICAgICAgbGwgdHJvbmdzbz1jYW5oLmZpLCBkYXU9Y2FuaC5zZS5maSwgY3VvaT1jYW5oLnNlLnNlOwogICAgICAgIGlmKCFrdHJhW2N1b2ldKSBjb250aW51ZTsKICAgICAgICBhbnMrPXRyb25nc287ICAgCiAgICAgICAgLy9jb3V0IDw8ICIoIiA8PGRhdSA8PCIsIjw8Y3VvaTw8IikiIDw8ICIgPSAiIDw8IHRyb25nc28gPDwgIlxuIjsKICAgICAgICAvL3ZldC5wdXNoX2JhY2soe3Ryb25nc28se2RhdSxjdW9pfX0pOwogICAgICAgIGt0cmFbY3VvaV09ZmFsc2U7CiAgICAgICAgZm9yKGF1dG8gaXQ6QVtjdW9pXSl7CiAgICAgICAgICAgIGlmKGt0cmFbaXQuZmldKXsKICAgICAgICAgICAgICAgIFEucHVzaCh7aXQuc2Use2N1b2ksaXQuZml9fSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgfQogICAgY291dCA8PCBhbnMgPDwiXG4iOwp9CgppbnQgbWFpbigpewogICAgLy9pb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgogICAgbGwgbixtOyBjaW4gPj4gbiA+PiBtOwogICAgZm9yKGxsIGk9MSA7IGk8PW0gOyBpKyspewogICAgICAgIGxsIHoseCx5OyBjaW4gPj4geCA+PiB5ID4+IHo7CiAgICAgICAgQVt4XS5wdXNoX2JhY2soe3ksen0pOwogICAgICAgIEFbeV0ucHVzaF9iYWNrKHt4LHp9KTsKICAgIH0KICAgIHByaW0oMSxuKTsKICAgIC8qCiAgICBmb3IobGwgaT0xIDsgaTw9biA7IGkrKyl7CiAgICAgICAgY291dCA8PCBpIDw8ICIgOiAiOwogICAgICAgIGZvcihhdXRvIFt4LHldOkFbaV0pIGNvdXQgPDwgeCA8PCAiLSIgPDwgeSA8PCAiICI7CiAgICAgICAgY291dCA8PCBlbmRsOwogICAgfQogICAgKi8KfQo=