#include<stdio.h>
#define N 100001
typedef struct{
  int f;
  int p;
  int d;
  int k;

} NODE;
int Cnt(NODE *,int,int);
int main(){
  int n,id,k,c[N][11],i,j;
  NODE T[N];
  for(i=0;i<N;i++){
    T[i].f=0;
    T[i].p=-1;

      }
  scanf("%d",&n);
  for(i=0;i<n;i++){
    scanf("%d",&id);
    T[id].f=1;
    scanf("%d",&T[id].k);
    if(T[id].k>0)
      T[id].f=2;
    for(j=0;j<T[id].k;j++){
      scanf("%d",&c[id][j]);
      T[c[id][j]].p=id;
	}
  }
  for(i=0;i<N;i++){
    if(T[i].f==0)
      continue;
     T[i].d=Cnt(T,i,0);
    if(T[i].p==-1)
      T[i].f=3;
  }
  for(i=0;i<N;i++){
    if(T[i].f==0)
      continue;
    printf("node %d: parent = %d, depth = %d, ",i,T[i].p,T[i].d);
    if(T[i].f==1)
      printf("leaf, [");
    else if(T[i].f==2)
      printf("internal node, [");
    else
      printf("root, [");
    for(j=0;j<T[i].k;j++){
      if(j!=0) printf(" ");
      printf("%d",c[i][j]);
      if(j!=T[i].k-1)
	printf(",");
	}
    printf("]\n");
  }
    



}
int Cnt(NODE T[],int i,int cnt){
  if(T[i].p==-1)
    return cnt;
  else
    return Cnt(T,T[i].p,cnt+1);

}

