#include using namespace std; using ll = long long; bool chmax(ll &a,ll b){ if(a>N; using edge = pair; vector G(N,vector()); for(int i=0;i>U>>V>>C; --U,--V; G[U].push_back(edge{V,C}); G[V].push_back(edge{U,C}); } vector d(N,-1),p(N,-1); vector pw(N,0ll); vector child(N,vector()); stackdfs; dfs.push(0); ll ans=0; while(dfs.size()){ int v=dfs.top(); dfs.pop(); for(int &i=++d[v];i()); if(c.size()>=2){ chmax(ans,c[0]+c[1]); } if(p[v]!=-1){ child[p[v]].push_back(c[0]+pw[v]); } } } cout<