#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector <int> pred(0);
int root(int x){
if (pred[x]==x){
return x;
}
else{
int r=root(pred[x]);
pred[x]=r;
return r;
}
}
bool issame(int a,int b){
return root(a) == root(b);
}
void join(int a,int b){
a=root(a);
b=root(b);
if (a%2==0){
pred[a]=b;
}
else{
pred[b]=a;
}
}
int main()
{
int n,m,k=0,rez=0;
cin >>n >> m;
vector <pair <int ,pair<int,int>>> edges;
for(int i=0;i<m;i++){
int a1,a2,v;
cin >> a1 >> a2 >> v;
edges.push_back({v,{a1,a2}});
}
sort(edges.begin(),edges.end());
for (int i=0;i<n;i++){
pred.push_back(i);
}
for (int i=0;i<n;i++){
int a,b;
a=edges[i].second.first;
b=edges[i].second.second;
cout << issame(a,b) <<' '<< root(a) <<' '<< root(b) << endl;
if ( issame(a,b)){
k++;
rez +=edges[i].first;
join(a,b);
if (k==n-1){
break;
}
}
}
cout << rez;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2ZWN0b3IgPGludD4gcHJlZCgwKTsKaW50IHJvb3QoaW50IHgpewogICAgaWYgKHByZWRbeF09PXgpewogICAgICAgIHJldHVybiB4OwogICAgfQogICAgZWxzZXsKICAgICAgICBpbnQgcj1yb290KHByZWRbeF0pOwogICAgICAgIHByZWRbeF09cjsKICAgICAgICByZXR1cm4gcjsKICAgIH0KICAgIAp9CmJvb2wgaXNzYW1lKGludCBhLGludCBiKXsKICAgIHJldHVybiByb290KGEpID09IHJvb3QoYik7Cn0Kdm9pZCBqb2luKGludCBhLGludCBiKXsKICAgIGE9cm9vdChhKTsKICAgIGI9cm9vdChiKTsKICAgIGlmIChhJTI9PTApewogICAgICAgIHByZWRbYV09YjsKICAgIH0KICAgIGVsc2V7CiAgICAgICAgcHJlZFtiXT1hOwogICAgfQp9CmludCBtYWluKCkKewogICAgaW50IG4sbSxrPTAscmV6PTA7CiAgICBjaW4gPj5uID4+IG07CiAgICB2ZWN0b3IgPHBhaXIgPGludCAscGFpcjxpbnQsaW50Pj4+IGVkZ2VzOwogICAgZm9yKGludCBpPTA7aTxtO2krKyl7CiAgICAgICAgaW50IGExLGEyLHY7CiAgICAgICAgY2luID4+IGExID4+IGEyID4+IHY7CiAgICAgICAgZWRnZXMucHVzaF9iYWNrKHt2LHthMSxhMn19KTsKICAgIH0KICAgIHNvcnQoZWRnZXMuYmVnaW4oKSxlZGdlcy5lbmQoKSk7CiAgICBmb3IgKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgcHJlZC5wdXNoX2JhY2soaSk7CiAgICB9CiAgICBmb3IgKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgaW50IGEsYjsKICAgICAgICBhPWVkZ2VzW2ldLnNlY29uZC5maXJzdDsKICAgICAgICBiPWVkZ2VzW2ldLnNlY29uZC5zZWNvbmQ7CiAgICAgICAgY291dCA8PCBpc3NhbWUoYSxiKSA8PCcgJzw8ICByb290KGEpIDw8JyAnPDwgcm9vdChiKSA8PCBlbmRsOwogICAgICAgIGlmICggaXNzYW1lKGEsYikpewogICAgICAgICAgICBrKys7CiAgICAgICAgICAgIHJleiArPWVkZ2VzW2ldLmZpcnN0OwogICAgICAgICAgICBqb2luKGEsYik7CiAgICAgICAgICAgIGlmIChrPT1uLTEpewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IHJlejsKICAgIHJldHVybiAwOwp9