#include<stdio.h>
#define M 100000
typedef struct{
  int k, d, c[10], p , type;
 
}node;
 
 
 
 
int main(){
  node T[M];
  int n,i,a,b,c,deep=1,j;
  scanf("%d",&n);
  for(i=0;i<n;i++){
    T[i].p=-1;
}
 
  for(i=0;i<n;i++){
    scanf("%d %d",&a,&b);
    T[a].k=b;
    if(b>0)T[a].type=0;
    else T[a].type = 1;
    for(j=0;j<b;j++){
      scanf("%d",&c);
      T[c].p=a;
      T[c].d=T[a].d+1;
      T[a].c[j]=c;
    }
  }
 
  for(i=0;i<n;i++){
    if(T[i].p==-1)T[i].type=-1;
    printf("node %d: parent = %d, depth = %d, ",i,T[i].p,T[i].d);
    if( T[i].type== -1) printf("root, ");
    else if(T[i].type == 0)printf("internal node, ");
    else printf("leaf, ");
    if(T[i].k==0)printf("[]\n");
    else {
      printf("[");
      for(j=0;j<T[i].k-1;j++){
    printf("%d, ",T[i].c[j]);
      }
      printf("%d]\n",T[i].c[j]);
    }
  }
 
 
 
  return 0;
}