#include <stdio.h>

#define MAX 100000
#define NIL -1

typedef struct{
  int p;
  int l;
  int r;
}tree;

tree T[MAX];

int main(){
  
  int n,i,j,node,zisu,child,left,count,Npare,Nani;
  
  scanf("%d",&n);
  for(i=0;i<n;i++){
    T[i].p=NIL;
    T[i].l=NIL;
    T[i].r=NIL; 
  }
  for(i=0;i<n;i++){
    scanf("%d%d",&node,&zisu);
    for(j=0;j<zisu;j++){
      if(j==0){
	scanf("%d",&child);
	T[node].l=child;
	T[child].p=node;
      }
      else {
	scanf("%d",&child);
	T[left].r=child;
	T[child].p=node;
      }
      left=child;
    }
  }

  for(i=0;i<n;i++){
    printf("node %d: ",i);
    printf("parent = %d, ",T[i].p);
    count=0;
    Npare=i;
    while(1){
      if(T[Npare].p==NIL) break;
      Npare=T[Npare].p;
      count++;
    }
    printf("depth = %d, ",count);
    if(T[i].p==NIL){
      printf("root, ");
    }
    else if(T[i].l==NIL && T[i].p!=NIL){
      printf("leaf, ");
    }
    else{
      printf("internal node, ");
    }
    printf("[");
    if(T[i].l !=-1){
      printf("%d",T[i].l);
      Nani= T[i].l;
      while(1){
	if(T[Nani].r==-1)break;
	printf(", %d",T[Nani].r);
	Nani=T[Nani].r;
      }
    }
    printf("]\n");	
  }
  
  return 0;
}