#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MAXN = 7e4 + 10;
int ans[MAXN], sub[MAXN];
vector<pair<int, int>> adj[MAXN];
int k;
void dfs(int v, int p, ll d){
sub[v] = 1;
for(auto [u, w] : adj[v]){
if(u != p){
ll nd = d;
if(nd + w > k) nd = 0;
dfs(u, v, nd + w);
sub[v] += sub[u];
if(d + w > k) ans[v] += sub[u];
}
}
}
int main(){
cin.tie(0)->sync_with_stdio(0);
int n; cin >> n >> k;
for(int i=1; i<n; i++){
int a, b, l; cin >> a >> b >> l;
a ++; b ++;
adj[a].push_back({b, l});
adj[b].push_back({a, l});
}
for(int i=1; i<=n; i++) dfs(i, 0, 0);
for(int i=1; i<=n; i++) cout << ans[i] << "\n";
return 0;
}