#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
typedef long long ll;
vector<pair<int, ll> > miti[1111111];
void dfs(int n, int o, ll k, ll* d){
d[n] = k;
int l = miti[n].size();
for (int i = 0; i < l; i++){
if (miti[n][i].first != o){
dfs(miti[n][i].first, n, k + miti[n][i].second, d);
}
}
}
ll d1[1111111];
ll d2[1111111];
int main(){
int n;
scanf("%d", &n);
for (int i = 0; i < n - 1; i++){
int a, b;
ll c;
scanf("%d%d%lld", &a, &b, &c);
miti[a].push_back(make_pair(b, c));
miti[b].push_back(make_pair(a, c));
}
dfs(1, -1, 0, d1);
ll mw = -1;
int ab = -1;
for (int i = 1; i <= n; i++){
if (mw < d1[i]){
mw = d1[i];
ab = i;
}
}
dfs(ab, -1, 0, d1);
mw = -1;
int bb = -1;
for (int i = 1; i <= n; i++){
if (mw < d1[i]){
mw = d1[i];
bb = i;
}
}
dfs(bb, -1, 0, d2);
for (int i = 1; i <= n; i++){
if (d1[i] == d2[i]) printf("%d\n", min(ab, bb));
else if (d1[i] > d2[i]) printf("%d\n", ab);
else printf("%d\n", bb);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHZlY3Rvcj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCnZlY3RvcjxwYWlyPGludCwgbGw+ID4gbWl0aVsxMTExMTExXTsKCnZvaWQgZGZzKGludCBuLCBpbnQgbywgbGwgaywgbGwqIGQpewoJZFtuXSA9IGs7CglpbnQgbCA9IG1pdGlbbl0uc2l6ZSgpOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBsOyBpKyspewoJCWlmIChtaXRpW25dW2ldLmZpcnN0ICE9IG8pewoJCQlkZnMobWl0aVtuXVtpXS5maXJzdCwgbiwgayArIG1pdGlbbl1baV0uc2Vjb25kLCBkKTsKCQl9Cgl9Cn0KCmxsIGQxWzExMTExMTFdOwpsbCBkMlsxMTExMTExXTsKCmludCBtYWluKCl7CglpbnQgbjsKCXNjYW5mKCIlZCIsICZuKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbiAtIDE7IGkrKyl7CgkJaW50IGEsIGI7CgkJbGwgYzsKCQlzY2FuZigiJWQlZCVsbGQiLCAmYSwgJmIsICZjKTsKCQltaXRpW2FdLnB1c2hfYmFjayhtYWtlX3BhaXIoYiwgYykpOwoJCW1pdGlbYl0ucHVzaF9iYWNrKG1ha2VfcGFpcihhLCBjKSk7Cgl9CglkZnMoMSwgLTEsIDAsIGQxKTsKCWxsIG13ID0gLTE7CglpbnQgYWIgPSAtMTsKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CgkJaWYgKG13IDwgZDFbaV0pewoJCQltdyA9IGQxW2ldOwoJCQlhYiA9IGk7CgkJfQoJfQoJZGZzKGFiLCAtMSwgMCwgZDEpOwoJbXcgPSAtMTsKCWludCBiYiA9IC0xOwoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKCQlpZiAobXcgPCBkMVtpXSl7CgkJCW13ID0gZDFbaV07CgkJCWJiID0gaTsKCQl9Cgl9CglkZnMoYmIsIC0xLCAwLCBkMik7Cglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspewoJCWlmIChkMVtpXSA9PSBkMltpXSkgcHJpbnRmKCIlZFxuIiwgbWluKGFiLCBiYikpOwoJCWVsc2UgaWYgKGQxW2ldID4gZDJbaV0pIHByaW50ZigiJWRcbiIsIGFiKTsKCQllbHNlIHByaW50ZigiJWRcbiIsIGJiKTsKCX0KCXJldHVybiAwOwp9Cg==