#include <stdio.h>
#define N 100000

typedef struct{
  int id;
  int c[10];
  int k;
  int depth;
} node;

main(){
  
  int n,i,j,x,y,z,count;
  node node[N];
  
  scanf("%d",&n);
  
  for(i=0; i<n; i++){
    scanf("%d%d",&node[i].id,&node[i].k);
    for(j=0; j<node[i].k; j++){
      scanf("%d",&node[i].c[j]);
    

    } 
  }
  printf("node %d: ",node[0].id);
  printf("parent = -1, depath = 0, root, [");
  if(node[0].k==0)
    printf("]\n");
  else{
    for(j=0; j<node[0].k-1; j++)
      printf("%d, ",node[0].c[j]);
    printf("%d]\n",node[0].c[j]);
  }
  
  
  for(i=0; i<n; i++){
    printf("node %d: ",node[i].id);

     for(z=0; z<i; z++){
       for(y=0; y<10; y++){
	
	  if(node[z].c[y]==0)
	    break;
	  if(node[i].id==node[z].c[y]){
	    node[i].depth=node[z].depth+1;
	    printf("parent = %d, depth = %d, ",node[z].id,node[i].depth);
	    break;
	  }
	}
     }
    
    if (node[i].k==0)
      printf("leaf, []\n");

    else{   
      printf("internal node, [");
      
      for(j=0; j<node[i].k-1; j++)
	printf("%d, ",node[i].c[j]);
      printf("%d]\n",node[i].c[j]);
    }

  }
  
  return 0;
}