#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int m=n-1;
vector<vector<int>>graph(n);
int i=1;
while(i<=m){
int x,y;
cin>>x>>y;
x--,y--;
graph[x].push_back(y);
graph[y].push_back(x);
i++;
}
vector<int>child_cnt(n,0);
queue<int>q;
int source=0;
vector<bool>visited(n,false);
q.push(source);
visited[source]=true;
while(!q.empty()){
int parent=q.front();
q.pop();
int count=0;
for(auto it:graph[parent]){
if(!visited[it]){
count++;
visited[it]=true;
q.push(it);
}
}
child_cnt[parent]=count;
}
for(int i=0;i<n;i++){
if(child_cnt[i]==0){
cout<<"Leaf node: "<<i+1<<endl;
}
}
for(int i=0;i<n;i++){
cout<<"Node "<<i+1<<" has children: "<<child_cnt[i]<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CglpbnQgbjsKCWNpbj4+bjsKCQoJaW50IG09bi0xOwoJCgl2ZWN0b3I8dmVjdG9yPGludD4+Z3JhcGgobik7CglpbnQgaT0xOwoJd2hpbGUoaTw9bSl7CgkJaW50IHgseTsKCQljaW4+Png+Pnk7CgkJeC0tLHktLTsKCQlncmFwaFt4XS5wdXNoX2JhY2soeSk7CgkJZ3JhcGhbeV0ucHVzaF9iYWNrKHgpOwoJCQoJCWkrKzsKCX0KCQoJdmVjdG9yPGludD5jaGlsZF9jbnQobiwwKTsKCQoJcXVldWU8aW50PnE7CglpbnQgc291cmNlPTA7Cgl2ZWN0b3I8Ym9vbD52aXNpdGVkKG4sZmFsc2UpOwoJCglxLnB1c2goc291cmNlKTsKCXZpc2l0ZWRbc291cmNlXT10cnVlOwoJCgl3aGlsZSghcS5lbXB0eSgpKXsKCQlpbnQgcGFyZW50PXEuZnJvbnQoKTsKCQlxLnBvcCgpOwoJCQoJCWludCBjb3VudD0wOwoJCQoJCWZvcihhdXRvIGl0OmdyYXBoW3BhcmVudF0pewoJCQlpZighdmlzaXRlZFtpdF0pewoJCQkJY291bnQrKzsKCQkJCXZpc2l0ZWRbaXRdPXRydWU7CgkJCQlxLnB1c2goaXQpOwoJCQl9CgkJfQoJCQoJCWNoaWxkX2NudFtwYXJlbnRdPWNvdW50OwoJCQoJfQoJCglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQlpZihjaGlsZF9jbnRbaV09PTApewoJCQljb3V0PDwiTGVhZiBub2RlOiAiPDxpKzE8PGVuZGw7CgkJfQoJfQoJCglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQljb3V0PDwiTm9kZSAiPDxpKzE8PCIgaGFzIGNoaWxkcmVuOiAiPDxjaGlsZF9jbnRbaV08PGVuZGw7Cgl9CglyZXR1cm4gMDsKCQp9