#include<stdio.h>
#define MAX 10005

typedef struct node{
  int p,l,r;
}Node;

Node T[MAX];
int n,D[MAX];

int rec(int);
void print(int);


int c[MAX];

int main(){
  int i,j,d,num;
  scanf("%d",&n);
  for(i=0;i<n;i++)
    T[i].p=T[i].l=T[i].r=-1;

  for(i=0;i<n;i++){
    scanf("%d%d",&d,&num);
    for(j=0;j<num;j++){
      scanf("%d",&c[j]);

      T[c[j]].p=num;

      if(j==0)
	T[num].l=c[0];

      else T[c[j-1]].r=c[j];
    }
  }

  for(i=0;i<n;i++)
    D[i]=rec(i);

  for(i=0;i<n;i++)
    print(i);
  
  return 0;
}

void print(int u){
  int i,cnt=0;

  printf("node %d: ",u);
  printf("parent = %d, ",T[u].p);
  printf("depth = %d, ",D[u]);

  if(T[u].r==-1) printf("root, ");
  else if (T[u].l==-1) printf("leaf, ");
  else printf("internal node, ");

  printf("[");

  u=T[u].l;
  while(u != -1){
    if(cnt == 0)
      printf("%d",u); 
  
    else
      printf(", %d",u);
    
    u = T[u].r;
    cnt++;
  }
 
}

int rec(int u){
  int d = 0;
  
  while(T[u].p >= 0){
    u = T[u].p;
    d++;
  }
  
  return d;
}