#include <stdio.h>
 
#define MAX 100000

int par[MAX];
 
void init(int);
int depth(int);

int tree[MAX][20],idx[MAX];

int main(){
  int n,i,j;
  
  scanf("%d",&n); init(n);
  for(i = 0 ; i < n ; i++){
    int id,k,c;
 
    scanf("%d%d",&id,&k);
    for(j = 0 ; j < k ; j++){
      scanf("%d",&c);
      par[c] = id;
      tree[id][idx[id]++] = c;
    }
  }
 
  for(i = 0 ; i < n ; i++){
    printf("node %d: parent = %d, depth = %d, "
           ,i,par[i],depth(i));
    
    if(par[i] == -1){
      printf("root, [");
    }else if(!idx[i]){
      printf("leaf, [");
    }else{
      printf("internal node, [");
    }

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

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

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