#include <bits/stdc++.h>
using namespace std;
const long long N=1e5+3,big=1e18,mod=1e9+7;
vector<long long > a[N];
long long depth[N],parent[N][18],dist[N][18];
long long n,x,w,y;
void dfs(long long i,long long p)
{
for(int j=0;j<a[i].size();j++)
if(a[i][j]!=p)
{
parent[a[i][j]][0]=i;
depth[a[i][j]]=depth[i]+1;
dist[a[i][j]][0]=a[i][j];
dfs(a[i][j],i);
}
}
int main()
{
cin>>n;
for(int i=0;i<n-1;i++)
{
cin>>x>>y>>w;
a[x].push_back(y);
a[y].push_back(x);
}
memset(parent,-1,sizeof(parent));
memset(dist,-1,sizeof(dist));
dfs(1,0);
for(int j=0;j<=17;j++)
parent[1][j]=-1;
for(int j=1;j<18;j++)
for(int i=2;i<=n;i++)
{
parent[i][j]=parent[parent[i][j-1]][j-1];
if(parent[i][j]>=1)
dist[i][j]=dist[parent[i][j-1]][j-1]+dist[i][j-1];
}
for(int i=1;i<=n;i++)
cout<<parent[i][0]<<" "<<parent[i][1]<<" "<<parent[i][2]<<endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsb25nIGxvbmcgTj0xZTUrMyxiaWc9MWUxOCxtb2Q9MWU5Kzc7Cgp2ZWN0b3I8bG9uZyBsb25nICA+IGFbTl07CmxvbmcgbG9uZyBkZXB0aFtOXSxwYXJlbnRbTl1bMThdLGRpc3RbTl1bMThdOwpsb25nIGxvbmcgbix4LHcseTsKCnZvaWQgZGZzKGxvbmcgbG9uZyBpLGxvbmcgbG9uZyBwKQp7CiAgICBmb3IoaW50IGo9MDtqPGFbaV0uc2l6ZSgpO2orKykKICAgICAgICBpZihhW2ldW2pdIT1wKQogICAgICAgIHsKICAgICAgICAgICAgcGFyZW50W2FbaV1bal1dWzBdPWk7CiAgICAgICAgICAgIGRlcHRoW2FbaV1bal1dPWRlcHRoW2ldKzE7CiAgICAgICAgICAgIGRpc3RbYVtpXVtqXV1bMF09YVtpXVtqXTsKICAgICAgICAgICAgZGZzKGFbaV1bal0saSk7CiAgICAgICAgfQp9CmludCBtYWluKCkKewogICAgY2luPj5uOwogICAgZm9yKGludCBpPTA7aTxuLTE7aSsrKQogICAgewogICAgICAgIGNpbj4+eD4+eT4+dzsKICAgICAgICBhW3hdLnB1c2hfYmFjayh5KTsKICAgICAgICBhW3ldLnB1c2hfYmFjayh4KTsKICAgIH0KICAgIG1lbXNldChwYXJlbnQsLTEsc2l6ZW9mKHBhcmVudCkpOwogICAgbWVtc2V0KGRpc3QsLTEsc2l6ZW9mKGRpc3QpKTsKICAgIGRmcygxLDApOwogICAgZm9yKGludCBqPTA7ajw9MTc7aisrKQogICAgICAgIHBhcmVudFsxXVtqXT0tMTsKCiAgICBmb3IoaW50IGo9MTtqPDE4O2orKykKICAgICAgICBmb3IoaW50IGk9MjtpPD1uO2krKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcGFyZW50W2ldW2pdPXBhcmVudFtwYXJlbnRbaV1bai0xXV1bai0xXTsKICAgICAgICAgICAgICAgIGlmKHBhcmVudFtpXVtqXT49MSkKICAgICAgICAgICAgICAgIGRpc3RbaV1bal09ZGlzdFtwYXJlbnRbaV1bai0xXV1bai0xXStkaXN0W2ldW2otMV07CiAgICAgICAgICAgIH0KZm9yKGludCBpPTE7aTw9bjtpKyspCgljb3V0PDxwYXJlbnRbaV1bMF08PCIgIjw8cGFyZW50W2ldWzFdPDwiICI8PHBhcmVudFtpXVsyXTw8ZW5kbDsKCgp9Cg==