#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ii pair<int,int>
#define fir first
#define sec second
#define pb push_back
const int maxn=1e5;
vector<ii>adj[maxn+2];
int n,k;
ii dp[maxn+2];
int val[maxn+2];
void dfs(int cur,int par){
dp[cur]={0,cur};
for(auto [v,w] : adj[cur]){
if(v==par)continue;
dfs(v,cur);
dp[v].fir+=w;
dp[cur]=max(dp[cur],dp[v]);
}
}
set<ii>lbh,krg;
int tot=0,ans[maxn+2];
void add(ii cur){
if(lbh.size()<k){
lbh.insert(cur);
tot+=cur.fir; return;
}
ii cek=*lbh.begin();
if(cek.fir<cur.fir){
lbh.erase(cek); krg.insert(cek);
lbh.insert(cur);
tot+=(cur.fir-cek.fir);
}
else{
krg.insert(cur);
}
}
void del(ii cur){
if(!krg.count(cur) && !lbh.count(cur))assert(1==0);
if(krg.count(cur)){
krg.erase(cur); return;
}
tot-=cur.first; lbh.erase(cur);
if(krg.size()){
ii cek=*krg.rbegin();
krg.erase(cek); lbh.insert(cek);
tot+=cek.first;
}
}
void reroot(int cur,int par,ii anc){
ans[cur]=tot;
vector<ii>elem,pref,suf;
for(auto [v,w] : adj[cur]){
if(v==par){
elem.pb(anc); continue;
}
elem.pb(dp[v]);
}
pref.resize(elem.size()),suf.resize(elem.size());
pref[0]=elem[0];
for(int q=1;q<pref.size();q++){
pref[q]=max(pref[q-1],elem[q]);
}
suf[suf.size()-1]=elem.back();
for(int q=suf.size()-2;q>=0;q--){
suf[q]=max(suf[q+1],elem[q]);
}
for(int q=0;q<adj[cur].size();q++){
auto [v,w]=adj[cur][q];
if(v==par)continue;
ii best={-1,-1};
if(adj[cur].size()==1)best={0,cur};
if(q)best=max(best,pref[q-1]);
if(q<adj[cur].size()-1)best=max(best,suf[q+1]);
del(best); add({best.fir+w,best.sec});
del(dp[v]); add({dp[v].fir-w,dp[v].sec});
reroot(v,cur,{best.fir+w,best.sec});
del({best.fir+w,best.sec}); add(best);
del({dp[v].fir-w,dp[v].sec}); add(dp[v]);
}
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin>>n>>k;
for(int q=1;q<n;q++){
int u,v,w;
cin>>u>>v>>w;
adj[u].pb({v,w}); adj[v].pb({u,w});
}
dfs(1,0);
for(int q=1;q<=n;q++){
val[dp[q].second]=max(val[dp[q].second],dp[q].first);
}
for(int q=1;q<=n;q++){
if(adj[q].size()==1){
//cout<<val[q]<<' '<<q<<endl;
add({val[q],q});
}
}
reroot(1,0,{-1,-1});
for(int q=1;q<=n;q++){
cout<<ans[q]<<endl;
}
}