#include #define LL long long using namespace std; const LL inf=1e18; const int N=205,M=2005; int n,m,w[N],u,v,a; long long dp[N][M],g[M]; vectormp[N],dis[N]; void dfs(int x,int f){ int y,z; long long mx; for(int i=0;i=0;i--)dp[y][i]+=w[y]; dfs(y,x),mx=0; for(int i=0;i<=m;i++){ mx=max(mx,dp[y][i]); dp[x][i]=max(dp[x][i],mx); } } } int main(){ //freopen("tulip.in","r",stdin); //freopen("tulip.out","w",stdout); cin>>n>>m; for(int i=1;i<=n;i++)cin>>w[i-1]; for(int i=1;i>u>>v>>a; mp[u].push_back(v); mp[v].push_back(u); dis[u].push_back(a*2); dis[v].push_back(a*2); } dfs(0,0); cout<