#include <stdio.h>

#define MAX 10000
#define NIL -1

typedef struct{
  int p;
  int zisu;
  int c[MAX];
}tree;

tree T[MAX];

int main(){

  int n,i,j=0,node,child,zisu,count;

  scanf("%d",&n);

  for(i=0;i<n;i++){
    T[i].p=NIL;
  }
  for(i=0;i<n;i++){
    scanf("%d%d",&node,&zisu);
    for(j=0;j<zisu;j++){
      scanf("%d",&child);
      T[node].c[j]=child;
      T[child].p=node;
    }
    T[node].c[j]=NIL;
    T[node].zisu=zisu;
  }

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

  return 0;
}