#include<stdio.h>
#define max 100005
#define NIL -1

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

Node T[max];
int n,H,D[max];

int Depth(int u){
  int d=0;
  for(;T[u].p!=NIL;d++) u=T[u].p;
  return d;
}

int main(){
  int i,j,k,id,c,l;

  scanf("%d",&n);

  for(i=0;i<n;i++) T[i].p=T[i].l=T[i].r=NIL;

  for(i=0;i<n;i++){
    scanf("%d%d",&id,&k);
    for(j=0;j<k;j++){
      scanf("%d",&c);
      if(j==0) T[id].l=c;
      else T[l].r=c;
      l=c;
      T[c].p=id;
    }
  }

  H=0;
  for(i=0;i<n;i++){
    D[i]=Depth(i);
    if(D[i]>H) H=D[i];
  }

  for(i=0;i<n;i++){
    printf("node %d: parent = %d, depth = %d, ",i,T[i].p,D[i]);

    if(T[i].p==NIL) printf("root, ");
    else if(T[i].l==NIL) printf("leaf, ");
    else printf("internal node, ");
    
    printf("[");
    for(j=0,c=T[i].l;c!=NIL;j++,c=T[c].r){
      if(j) printf(", ");
      printf("%d",c);
    }
    printf("]\n");
  }
  
  return 0;
}

