#include<iostream>
using namespace std;
#define MAX 8500
int temp;
struct node{
int parent;
int child;
int wartosc;
bool uzyta;
};
struct node2{
node2 *parent;
node2 *left;
node2 *right;
int wartosc;
int co;
bool uzyta;
};
void zeruj(node2 *a){
a->co = NULL;
a->left = NULL;
a->parent = NULL;
a->right = NULL;
a->wartosc = NULL;
}
void szukajdziecka(node2 *w, node t[], int n){
int znalazl = false;
int znalazl2 = false;
for (int i = 0; i < n; i++){
if (t[i].parent == w->co){
znalazl = true;
if (t[i].uzyta == false){
if (w->left == NULL){
w->left = new node2;
zeruj(w->left);
w->left->parent = w;
w->left->wartosc = t[i].wartosc;
w->left->co = t[i].child;
t[i].uzyta = true;
szukajdziecka(w->left, t, n);
}
else if (w->right == NULL){
w->right = new node2;
zeruj(w->right);
w->right->parent = w;
w->right->wartosc = t[i].wartosc;
w->right->co = t[i].child;
t[i].uzyta = true;
szukajdziecka(w->right, t, n);
}
}
}
if (t[i].child == w->co){
znalazl2 = true;
if (t[i].uzyta == false){
if (w->left == NULL){
w->left = new node2;
zeruj(w->left);
w->left->parent = w;
w->left->wartosc = t[i].wartosc;
w->left->co = t[i].parent;
t[i].uzyta = true;
szukajdziecka(w->left, t, n);
}
else if (w->right == NULL){
w->right = new node2;
zeruj(w->right);
w->right->parent = w;
w->right->wartosc = t[i].wartosc;
w->right->co = t[i].parent;
t[i].uzyta = true;
szukajdziecka(w->right, t, n);
}
}
}
}
}
int liczymy(node2 *w, int n){
if (n > 0){
if (w->left != NULL && w->right != NULL){
int pom1, pom2;
if ((pom1 = liczymy(w->left, n - 1)) >= (pom2 = liczymy(w->right, n - 1))){
return pom1 + w->wartosc;
}
else {
return pom2 + w->wartosc;
}
}else if (w->left != NULL){
return liczymy(w->left, n - 1) + w->wartosc;
}else if (w->right != NULL){
return liczymy(w->right, n - 1) + w->wartosc;
}else if (w->left == NULL && w->right == NULL){
return w->wartosc;
}
else return 0;
}
else return 0;
}
int main(){
node t[MAX];
node2 *root=new node2;
zeruj(root);
int n, ruch,pom=1;
cin >> n >> ruch;
for (int i = 0; i < n; i++){
cin >> t[i].parent >> t[i].child >> t[i].wartosc;
t[i].uzyta = false;
}
for (int i = 0; i < n; i++){
if (t[i].parent == 1 || t[i].child == 1){
t[i].uzyta = true;
root->co = t[i].child;
root->wartosc = t[i].wartosc;
szukajdziecka(root, t, n);
}
}
cout<<liczymy(root, n);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgTUFYIDg1MDAKaW50IHRlbXA7CnN0cnVjdCBub2RlewoJaW50IHBhcmVudDsKCWludCBjaGlsZDsKCWludCB3YXJ0b3NjOwoJYm9vbCB1enl0YTsKfTsKc3RydWN0IG5vZGUyewoJbm9kZTIgKnBhcmVudDsKCW5vZGUyICpsZWZ0OwoJbm9kZTIgKnJpZ2h0OwoJaW50IHdhcnRvc2M7CglpbnQgY287Cglib29sIHV6eXRhOwp9Owp2b2lkIHplcnVqKG5vZGUyICphKXsKCWEtPmNvID0gTlVMTDsKCWEtPmxlZnQgPSBOVUxMOwoJYS0+cGFyZW50ID0gTlVMTDsKCWEtPnJpZ2h0ID0gTlVMTDsKCWEtPndhcnRvc2MgPSBOVUxMOwp9CnZvaWQgc3p1a2FqZHppZWNrYShub2RlMiAqdywgbm9kZSB0W10sIGludCBuKXsKCWludCB6bmFsYXpsID0gZmFsc2U7CglpbnQgem5hbGF6bDIgPSBmYWxzZTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKCQlpZiAodFtpXS5wYXJlbnQgPT0gdy0+Y28pewoJCQl6bmFsYXpsID0gdHJ1ZTsKCQkJaWYgKHRbaV0udXp5dGEgPT0gZmFsc2UpewoJCQkJaWYgKHctPmxlZnQgPT0gTlVMTCl7CgkJCQkJdy0+bGVmdCA9IG5ldyBub2RlMjsKCQkJCQl6ZXJ1aih3LT5sZWZ0KTsKCQkJCQl3LT5sZWZ0LT5wYXJlbnQgPSB3OwoJCQkJCXctPmxlZnQtPndhcnRvc2MgPSB0W2ldLndhcnRvc2M7CgkJCQkJdy0+bGVmdC0+Y28gPSB0W2ldLmNoaWxkOwoJCQkJCXRbaV0udXp5dGEgPSB0cnVlOwoJCQkJCXN6dWthamR6aWVja2Eody0+bGVmdCwgdCwgbik7CgkJCQl9CgkJCQllbHNlCWlmICh3LT5yaWdodCA9PSBOVUxMKXsKCQkJCQl3LT5yaWdodCA9IG5ldyBub2RlMjsKCQkJCQl6ZXJ1aih3LT5yaWdodCk7CgkJCQkJdy0+cmlnaHQtPnBhcmVudCA9IHc7CgkJCQkJdy0+cmlnaHQtPndhcnRvc2MgPSB0W2ldLndhcnRvc2M7CgkJCQkJdy0+cmlnaHQtPmNvID0gdFtpXS5jaGlsZDsKCQkJCQl0W2ldLnV6eXRhID0gdHJ1ZTsKCQkJCQlzenVrYWpkemllY2thKHctPnJpZ2h0LCB0LCBuKTsKCQkJCX0KCQkJfQoJCX0KCQlpZiAodFtpXS5jaGlsZCA9PSB3LT5jbyl7CgkJCXpuYWxhemwyID0gdHJ1ZTsgCgkJCWlmICh0W2ldLnV6eXRhID09IGZhbHNlKXsKCQkJCWlmICh3LT5sZWZ0ID09IE5VTEwpewoJCQkJCXctPmxlZnQgPSBuZXcgbm9kZTI7CgkJCQkJemVydWoody0+bGVmdCk7CgkJCQkJdy0+bGVmdC0+cGFyZW50ID0gdzsKCQkJCQl3LT5sZWZ0LT53YXJ0b3NjID0gdFtpXS53YXJ0b3NjOwoJCQkJCXctPmxlZnQtPmNvID0gdFtpXS5wYXJlbnQ7CgkJCQkJdFtpXS51enl0YSA9IHRydWU7CgkJCQkJc3p1a2FqZHppZWNrYSh3LT5sZWZ0LCB0LCBuKTsKCQkJCX0KCQkJCWVsc2UgaWYgKHctPnJpZ2h0ID09IE5VTEwpewoJCQkJCXctPnJpZ2h0ID0gbmV3IG5vZGUyOwoJCQkJCXplcnVqKHctPnJpZ2h0KTsKCQkJCQl3LT5yaWdodC0+cGFyZW50ID0gdzsKCQkJCQl3LT5yaWdodC0+d2FydG9zYyA9IHRbaV0ud2FydG9zYzsKCQkJCQl3LT5yaWdodC0+Y28gPSB0W2ldLnBhcmVudDsKCQkJCQl0W2ldLnV6eXRhID0gdHJ1ZTsKCQkJCQlzenVrYWpkemllY2thKHctPnJpZ2h0LCB0LCBuKTsKCQkJCX0KCQkJfQoJCX0KCX0KfQppbnQgbGljenlteShub2RlMiAqdywgaW50IG4pewoJaWYgKG4gPiAwKXsKCQlpZiAody0+bGVmdCAhPSBOVUxMICYmIHctPnJpZ2h0ICE9IE5VTEwpewoJCQlpbnQgcG9tMSwgcG9tMjsKCQkJaWYgKChwb20xID0gbGljenlteSh3LT5sZWZ0LCBuIC0gMSkpID49IChwb20yID0gbGljenlteSh3LT5yaWdodCwgbiAtIDEpKSl7CgkJCQlyZXR1cm4gcG9tMSArIHctPndhcnRvc2M7CgkJCX0KCQkJZWxzZSB7CgkJCQlyZXR1cm4gcG9tMiArIHctPndhcnRvc2M7CgkJCX0KCQl9ZWxzZSBpZiAody0+bGVmdCAhPSBOVUxMKXsKCQkJcmV0dXJuIGxpY3p5bXkody0+bGVmdCwgbiAtIDEpICsgdy0+d2FydG9zYzsKCQl9ZWxzZSBpZiAody0+cmlnaHQgIT0gTlVMTCl7CgkJCXJldHVybiBsaWN6eW15KHctPnJpZ2h0LCBuIC0gMSkgKyB3LT53YXJ0b3NjOwoJCX1lbHNlIGlmICh3LT5sZWZ0ID09IE5VTEwgJiYgdy0+cmlnaHQgPT0gTlVMTCl7CgkJCXJldHVybiB3LT53YXJ0b3NjOwoJCX0KCQllbHNlIHJldHVybiAwOwoJfQoJZWxzZSByZXR1cm4gMDsKfQppbnQgbWFpbigpewoJbm9kZSB0W01BWF07Cglub2RlMiAqcm9vdD1uZXcgbm9kZTI7Cgl6ZXJ1aihyb290KTsKCWludCBuLCBydWNoLHBvbT0xOwoJY2luID4+IG4gPj4gcnVjaDsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKCQljaW4gPj4gdFtpXS5wYXJlbnQgPj4gdFtpXS5jaGlsZCA+PiB0W2ldLndhcnRvc2M7CgkJdFtpXS51enl0YSA9IGZhbHNlOwoJfQoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspewoJCWlmICh0W2ldLnBhcmVudCA9PSAxIHx8IHRbaV0uY2hpbGQgPT0gMSl7CgkJCXRbaV0udXp5dGEgPSB0cnVlOwoJCQlyb290LT5jbyA9IHRbaV0uY2hpbGQ7IAoJCQlyb290LT53YXJ0b3NjID0gdFtpXS53YXJ0b3NjOwoJCQlzenVrYWpkemllY2thKHJvb3QsIHQsIG4pOwoJCX0KCX0KCWNvdXQ8PGxpY3p5bXkocm9vdCwgbik7CglyZXR1cm4gMDsKfQ==