#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;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGxvbmcgbG9uZyBNYXhOID0gMWU1ICsgNTsKCmxvbmcgbG9uZyBuLCBxOwpsb25nIGxvbmcgdmlzaXRlZFtNYXhOXSwgcGFyW01heE5dLCBudW1bTWF4Tl0sIGRpc1tNYXhOXTsKdmVjdG9yPGxvbmcgbG9uZz4gYVtNYXhOXTsKCnZvaWQgYmZzKGxvbmcgbG9uZyBzKQp7CiAgICBxdWV1ZTxsb25nIGxvbmc+IHF1OwogICAgcXUucHVzaChzKTsKICAgIHZpc2l0ZWRbc10gPSB0cnVlOwogICAgcGFyW3NdID0gczsKCiAgICB3aGlsZSghcXUuZW1wdHkoKSkKICAgIHsKICAgICAgICBsb25nIGxvbmcgdSA9IHF1LmZyb250KCk7CiAgICAgICAgcXUucG9wKCk7CgogICAgICAgIGZvcihsb25nIGxvbmcgdiA6IGFbdV0pCiAgICAgICAgewogICAgICAgICAgICBpZighdmlzaXRlZFt2XSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmlzaXRlZFt2XSA9IHRydWU7CiAgICAgICAgICAgICAgICBkaXNbdl0gPSBkaXNbdV0gKyAxOwogICAgICAgICAgICAgICAgcGFyW3ZdID0gdTsKICAgICAgICAgICAgICAgIHF1LnB1c2godik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCnN0cnVjdCBRVUVSWQp7CiAgICBsb25nIGxvbmcgeCwgeSwgejsKfSBxdWVyeVtNYXhOXTsKCnZvaWQgaW5wdXQoKQp7CiAgICBjaW4gPj4gbiA+PiBxOwoKICAgIGZvcihsb25nIGxvbmcgaSA9IDE7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgbG9uZyBsb25nIHUsIHY7CiAgICAgICAgY2luID4+IHUgPj4gdjsKICAgICAgICBhW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBhW3ZdLnB1c2hfYmFjayh1KTsKICAgIH0KCiAgICBmb3IobG9uZyBsb25nIGkgPSAxOyBpIDw9IHE7IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gcXVlcnlbaV0ueCA+PiBxdWVyeVtpXS55ID4+IHF1ZXJ5W2ldLno7CiAgICB9Cn0KCnZvaWQgc29sdmUoKQp7CiAgICBiZnMoMSk7CgogICAgZm9yKGxvbmcgbG9uZyBpID0gMTsgaSA8PSBxOyBpKyspCiAgICB7CiAgICAgICAgbG9uZyBsb25nIHggPSBxdWVyeVtpXS54OwogICAgICAgIGxvbmcgbG9uZyB5ID0gcXVlcnlbaV0ueTsKICAgICAgICBsb25nIGxvbmcgeiA9IHF1ZXJ5W2ldLno7CgogICAgICAgIHZlY3Rvcjxsb25nIGxvbmc+IHZ0OwoKICAgICAgICB3aGlsZShkaXNbeV0gPiBkaXNbeF0pCiAgICAgICAgewogICAgICAgICAgICBpZihudW1beV0gPT0gMCkKICAgICAgICAgICAgICAgIG51bVt5XSA9IHo7CgogICAgICAgICAgICB2dC5wdXNoX2JhY2soeSk7CiAgICAgICAgICAgIHkgPSBwYXJbeV07CiAgICAgICAgfQoKICAgICAgICBpZihudW1beF0gPT0gMCkKICAgICAgICAgICAgbnVtW3hdID0gejsKCiAgICAgICAgZm9yKGxvbmcgbG9uZyB1IDogdnQpCiAgICAgICAgICAgIHBhclt1XSA9IHBhclt4XTsKICAgIH0KCiAgICBmb3IobG9uZyBsb25nIGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICBjb3V0IDw8IG51bVtpXSA8PCAiICI7Cn0KCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CgogICAgaW5wdXQoKTsKICAgIHNvbHZlKCk7CgogICAgcmV0dXJuIDA7Cn0=