#include <stdio.h>
#include <ctype.h>
 
#define MAX1 100000
#define MAX2 1500000

int num[MAX1];
 
void push(int);
int dpth(int);
int input(void);

char *p;
char a[MAX2];
int tree[MAX1][15],x[MAX1];

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

  fread(a,sizeof(a),1,stdin);  
  p = a;

  n = input();
  push(n);
  
  for(i = 0 ; i < n ; i++){
    id = input();
    k = input();
    for(j = 0 ; j < k ; j++){
      c = input();
      num[c] = id;
      tree[id][x[id]++] = c;
    }
  }
 
  for(i = 0 ; i < n ; i++){
    printf("node %d: parent = %d, depth = %d, "
           ,i,num[i],dpth(i));
    
    if(num[i] == -1){
      printf("root, [");
    }
    
    else if(!x[i]){
      printf("leaf, [");
    }
    
    else{
      printf("internal node, [");
    }

    for(j = 0 ; j < x[i] ; j++){
      printf("%d",tree[i][j]);
      if(j < x[i]-1) printf(", ");
    }
    puts("]");
  }
  return 0;
}

void push(int n){
  int i;
  for(i = 0 ; i < n ; i++){
    num[i] = -1;
  }
}

int dpth(int x){
  if(num[x] == -1) return 0;
  return dpth(num[x]) + 1;
}

int input(){
  int x = 0;
  while(!isdigit(*p)) ++p;
  x = *p++&15;
  
  while(isdigit(*p)){
    x = (x<<3)+(x<<1)+(*p++&15);
  }
  
  return x;
}

