/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Main
{
static int[] dp;
static int[] dp1;
public static void findSum(int node, ArrayList<Integer>[] adj, int[] vis, int[] parent){
vis[node] = 1;
int cnt = 0;
for(int ch: adj[node]){
if(vis[ch] == 0){
parent[ch] = node;
findSum(ch, adj, vis, parent);
cnt += dp[ch];
}
}
dp[node] = cnt + 1;
int sum = 0;
for(int ch: adj[node]){
if(ch != parent[node]){
sum += dp1[ch] + dp[ch];
}
}
dp1[node] = sum;
}
{
// your code goes here
Scanner sc
= new Scanner
(System.
in); int n = sc.nextInt();
for(int i=0;i<n;i++){
adj[i] = new ArrayList<>();
}
for(int i=0;i<n-1;i++){
int x = sc.nextInt();
int y = sc.nextInt();
adj[x].add(y);
adj[y].add(x);
}
dp = new int[n];
dp1 = new int[n];
int[] vis = new int[n];
int[] parent = new int[n];
findSum(0,adj,vis,parent);
for(int i=0;i<n;i++){
System.
out.
println("node " + i
+" " + dp1
[i
]); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgTWFpbgp7CglzdGF0aWMgaW50W10gZHA7CglzdGF0aWMgaW50W10gZHAxOwoJCglwdWJsaWMgc3RhdGljIHZvaWQgZmluZFN1bShpbnQgbm9kZSwgQXJyYXlMaXN0PEludGVnZXI+W10gYWRqLCBpbnRbXSB2aXMsIGludFtdIHBhcmVudCl7CgkJdmlzW25vZGVdID0gMTsKCQlpbnQgY250ID0gMDsKCQkKCQlmb3IoaW50IGNoOiBhZGpbbm9kZV0pewoJCQlpZih2aXNbY2hdID09IDApewoJCQkJcGFyZW50W2NoXSA9IG5vZGU7CgkJCQlmaW5kU3VtKGNoLCBhZGosIHZpcywgcGFyZW50KTsKCQkJCWNudCArPSBkcFtjaF07CgkJCX0KCQl9CgkJZHBbbm9kZV0gPSBjbnQgKyAxOwoJCQoJCWludCBzdW0gPSAwOwoJCWZvcihpbnQgY2g6IGFkaltub2RlXSl7CgkJCWlmKGNoICE9IHBhcmVudFtub2RlXSl7CgkJCQlzdW0gKz0gZHAxW2NoXSArIGRwW2NoXTsKCQkJfQoJCX0KCQlkcDFbbm9kZV0gPSBzdW07Cgl9CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJU2Nhbm5lciBzYyA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CgkJaW50IG4gPSBzYy5uZXh0SW50KCk7CgkJQXJyYXlMaXN0PEludGVnZXI+W10gYWRqID0gbmV3IEFycmF5TGlzdFtuXTsKCQlmb3IoaW50IGk9MDtpPG47aSsrKXsKCQkJYWRqW2ldID0gbmV3IEFycmF5TGlzdDw+KCk7CgkJfQoJCQoJCWZvcihpbnQgaT0wO2k8bi0xO2krKyl7CgkJCWludCB4ID0gc2MubmV4dEludCgpOwoJCQlpbnQgeSA9IHNjLm5leHRJbnQoKTsKCQkJYWRqW3hdLmFkZCh5KTsKCQkJYWRqW3ldLmFkZCh4KTsKCQl9CgkJCgkJZHAgPSBuZXcgaW50W25dOwoJCWRwMSA9IG5ldyBpbnRbbl07CgkJaW50W10gdmlzID0gbmV3IGludFtuXTsKCQlpbnRbXSBwYXJlbnQgPSBuZXcgaW50W25dOwoJCUFycmF5cy5maWxsKHBhcmVudCwgLTEpOwoJCWZpbmRTdW0oMCxhZGosdmlzLHBhcmVudCk7CgkJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigibm9kZSAiICsgaSArIiAiICsgZHAxW2ldKTsKCQl9Cgl9Cn0=