#include<stdio.h>
#define MAX 100000
#define NIL -1

typedef struct {
  int parent;
  int left;
  int right;
}Tree;
Tree T[MAX];

void print(int id);

int main(){
  int i,j,n,p,a,r,b;

  scanf("%d",&n);
  for(i=0;i<n;i++){
    T[i].parent=T[i].left=T[i].right=NIL;
  }
  for(i=0;i<n;i++){
    scanf("%d%d",&p,&a);
    for(j=0;j<a;j++){
      scanf("%d",&r);
      T[r].parent=p;
      if(j==0) T[p].left=r;
      else if(j>0) T[b].right=r;
      b=r;
    }
  }

  for(i=0;i<n;i++){
    print(i);
  }
  return 0;
}

void print(int id){
  int depth=0;
  int u=T[id].parent;

  while(u!=NIL){
    u=T[u].parent;
    depth++;
  }
  
  if(depth==0){
    printf("node %d: parent = %d, depth = %d, root, ",id,T[id].parent,depth);
  }
  else if(T[id].left==NIL){
    printf("node %d: parent = %d, depth = %d, leaf, ",id,T[id].parent,depth);
  }
  else{
    printf("node %d: parent = %d, depth = %d, internal node, ",id,T[id].parent,depth);
  }

  u=T[id].left;
  printf("[");
  if(u!=NIL){
    printf("%d",u);
  }
  while(u!=NIL){
    u=T[u].right;
    if(u!=NIL){
      printf(", %d",u);
    }
  }
  printf("]\n");
}