#include #include #include using namespace std; int N,K; vector >G[100]; vector >E; int ans=0; int dfs(int u,int p) { int ch=0; bool isr=true; for(paire:G[u]) { int v=e.first; if(v!=p) { int c=dfs(v,u); ans+=c*e.second; E.push_back(make_pair(e.second,c)); ch+=c; isr=false; } } if(isr)ch=1; return ch; } int dp[1<<17]; main() { cin>>N>>K; for(int i=1;i>a>>b>>c; a--,b--; G[a].push_back(make_pair(b,c)); G[b].push_back(make_pair(a,c)); } dfs(0,-1); for(paire:E) { int c=e.second; int k=e.first; for(int i=K;i>=k;i--) { dp[i]=max(dp[i],dp[i-k]+c*k); } } cout<