#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct{
  int id;
  int k;
  int child[10];
  int parent;
}node;

int d=0;
node *T;
int depth(int i){
  if(T[i].parent == -1) return d;
  else{
    d++;
    return depth(T[i].parent);
  }
}

int main(){
  int i, j=0, n;
  char str[20];
  scanf("%d", &n);
  T = malloc(sizeof(node)*n);
  for(i = 0; i < n; i++){
    scanf("%d%d",&T[i].id, &T[i].k);
    if(T[i].k > 1) T[i].parent = -1;
    for(j = 0; j < T[i].k; j++){
      scanf("%d",&T[i].child[j]);
      T[T[i].child[j]].parent = T[i].id;
    }  
  }
//print
  for(i = 0; i < n; i++){
    if(i==0) strcpy(str,"root");
    else if(T[i].k == 0) strcpy(str,"leaf");
    else strcpy(str,"internal node");
    printf("node %d: parent = %d, depth = %d, %s, ",i, T[i].parent,depth(i),str);
    d=0;
    printf("[");
    for(j=0; j<T[i].k; j++){
    if(j > 0) printf(", ");
    printf("%d",T[i].child[j]);
    }
    printf("]\n");
    
  }
  return 0;
}