#include <stdio.h>
#define N 100001

typedef struct{
  int par,l_child,r_sib;
}node;

node tree[N];
int depth(int);

int main(){
  int n,i,j,id,cnum,lef,child;

  scanf("%d",&n);
  
  for(i=0;i<n;i++){
    tree[i].par = -1;
    tree[i].l_child = -1;
    tree[i].r_sib = -1;
  }
  
  for(i=0;i<n;i++){
    scanf("%d %d",&id,&cnum);
    for(j=0;j<cnum;j++){
      scanf("%d",&child);
      if(j==0)tree[id].l_child=child;
      else tree[lef].r_sib=child;
      tree[child].par=id;
      lef=child;
    }
  }

  for(i=0;i<n;i++){
    printf("node %d : parent= %d ,depth= %d ,",i,tree[i].par,depth(i));
    if(tree[i].par==-1) printf("root,[");
    else if(tree[i].l_child == -1) printf("leaf,[");
    else printf("internal node, [");
    lef = tree[i].l_child;
    for(j=0;j<n;j++){
      if(lef==-1) break;
      if(j != 0) printf(", ");
      printf("%d",lef);
      lef = tree[lef].r_sib;
    }

    printf("]\n");
  }
  
  return 0;
  
}

int depth(n){
  if(tree[n].par == -1) return 0;
  return depth(tree[n].par)+1;
}