#include <bits/stdc++.h>
using namespace std;
const int maxn=105;
int r[maxn][maxn],d[maxn];
vector<int> vec[maxn];
int dfs(int u,int k){
if(k==0) return 0;
if(vec[u].size()==0) return 0;
int ans=0;
int lc=vec[u][0],rc=vec[u][1];
for(int j=1;j<=k-1;j++){
ans=max(ans,dfs(rc,k-j-1)+dfs(lc,j-1)+r[u][lc]+r[u][rc]);
}
ans=max(ans,dfs(lc,k-1)+r[u][lc]);
ans=max(ans,dfs(rc,k-1)+r[u][rc]);
return ans;
}
int main(){
int n,q;
cin >> n >> q;
for(int i=1;i<=n;i++){
int x,y,z;
cin >> x >> y >> z;
vec[x].push_back(y);
r[x][y]=z;
d[y]++;
}
int t;
for(int i=1;i<=n;i++){
if(d[i]==0){
t=i;break;
}
}
cout << dfs(t,q);
}
评测记录