#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;
	
}