#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 1e5 + 5;
long long n, q;
long long visited[MaxN], par[MaxN], num[MaxN], dis[MaxN];
vector<long long> a[MaxN];
void bfs(long long s)
{
queue<long long> qu;
qu.push(s);
visited[s] = true;
par[s] = s;
while(!qu.empty())
{
long long u = qu.front();
qu.pop();
for(long long v : a[u])
{
if(!visited[v])
{
visited[v] = true;
dis[v] = dis[u] + 1;
par[v] = u;
qu.push(v);
}
}
}
}
struct QUERY
{
long long x, y, z;
} query[MaxN];
void input()
{
cin >> n >> q;
for(long long i = 1; i < n; i++)
{
long long u, v;
cin >> u >> v;
a[u].push_back(v);
a[v].push_back(u);
}
for(long long i = 1; i <= q; i++)
{
cin >> query[i].x >> query[i].y >> query[i].z;
}
}
void solve()
{
bfs(1);
for(long long i = 1; i <= q; i++)
{
long long x = query[i].x;
long long y = query[i].y;
long long z = query[i].z;
vector<long long> vt;
while(dis[y] > dis[x])
{
if(num[y] == 0)
num[y] = z;
vt.push_back(y);
y = par[y];
}
if(num[x] == 0)
num[x] = z;
for(long long u : vt)
par[u] = par[x];
}
for(long long i = 1; i <= n; i++)
cout << num[i] << " ";
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApjb25zdCBsb25nIGxvbmcgTWF4TiA9IDFlNSArIDU7CiAKbG9uZyBsb25nIG4sIHE7CmxvbmcgbG9uZyB2aXNpdGVkW01heE5dLCBwYXJbTWF4Tl0sIG51bVtNYXhOXSwgZGlzW01heE5dOwp2ZWN0b3I8bG9uZyBsb25nPiBhW01heE5dOwogCnZvaWQgYmZzKGxvbmcgbG9uZyBzKQp7CiAgICBxdWV1ZTxsb25nIGxvbmc+IHF1OwogICAgcXUucHVzaChzKTsKICAgIHZpc2l0ZWRbc10gPSB0cnVlOwogICAgcGFyW3NdID0gczsKIAogICAgd2hpbGUoIXF1LmVtcHR5KCkpCiAgICB7CiAgICAgICAgbG9uZyBsb25nIHUgPSBxdS5mcm9udCgpOwogICAgICAgIHF1LnBvcCgpOwogCiAgICAgICAgZm9yKGxvbmcgbG9uZyB2IDogYVt1XSkKICAgICAgICB7CiAgICAgICAgICAgIGlmKCF2aXNpdGVkW3ZdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2aXNpdGVkW3ZdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGRpc1t2XSA9IGRpc1t1XSArIDE7CiAgICAgICAgICAgICAgICBwYXJbdl0gPSB1OwogICAgICAgICAgICAgICAgcXUucHVzaCh2KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQogCnN0cnVjdCBRVUVSWQp7CiAgICBsb25nIGxvbmcgeCwgeSwgejsKfSBxdWVyeVtNYXhOXTsKIAp2b2lkIGlucHV0KCkKewogICAgY2luID4+IG4gPj4gcTsKIAogICAgZm9yKGxvbmcgbG9uZyBpID0gMTsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBsb25nIGxvbmcgdSwgdjsKICAgICAgICBjaW4gPj4gdSA+PiB2OwogICAgICAgIGFbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgIGFbdl0ucHVzaF9iYWNrKHUpOwogICAgfQogCiAgICBmb3IobG9uZyBsb25nIGkgPSAxOyBpIDw9IHE7IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gcXVlcnlbaV0ueCA+PiBxdWVyeVtpXS55ID4+IHF1ZXJ5W2ldLno7CiAgICB9Cn0KIAp2b2lkIHNvbHZlKCkKewogICAgYmZzKDEpOwogCiAgICBmb3IobG9uZyBsb25nIGkgPSAxOyBpIDw9IHE7IGkrKykKICAgIHsKICAgICAgICBsb25nIGxvbmcgeCA9IHF1ZXJ5W2ldLng7CiAgICAgICAgbG9uZyBsb25nIHkgPSBxdWVyeVtpXS55OwogICAgICAgIGxvbmcgbG9uZyB6ID0gcXVlcnlbaV0uejsKIAogICAgICAgIHZlY3Rvcjxsb25nIGxvbmc+IHZ0OwogCiAgICAgICAgd2hpbGUoZGlzW3ldID4gZGlzW3hdKQogICAgICAgIHsKICAgICAgICAgICAgaWYobnVtW3ldID09IDApCiAgICAgICAgICAgICAgICBudW1beV0gPSB6OwogCiAgICAgICAgICAgIHZ0LnB1c2hfYmFjayh5KTsKICAgICAgICAgICAgeSA9IHBhclt5XTsKICAgICAgICB9CiAKICAgICAgICBpZihudW1beF0gPT0gMCkKICAgICAgICAgICAgbnVtW3hdID0gejsKIAogICAgICAgIGZvcihsb25nIGxvbmcgdSA6IHZ0KQogICAgICAgICAgICBwYXJbdV0gPSBwYXJbeF07CiAgICB9CiAKICAgIGZvcihsb25nIGxvbmcgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgICAgIGNvdXQgPDwgbnVtW2ldIDw8ICIgIjsKfQogCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAKICAgIGlucHV0KCk7CiAgICBzb2x2ZSgpOwogCiAgICByZXR1cm4gMDsKfQ==