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

typedef struct{
	int p;
	int l;
	int r;
}Node;
Node T[100000];
int C[100000];
int n;
void print(int);
void rec(int,int);

int main(){
  int id,k,c,i,j,l,r;
  scanf("%d",&n);
  for(i=0;i<n;i++){
    T[i].p=-1;
    T[i].l=-1;
    T[i].r=-1;
  }
  for(i=0;i<n;i++){
    scanf("%d%d",&id,&k);
    for(j=0;j<k;j++){
      scanf("%d",&c);
      if(j==0){
	T[id].l=c;
      }else{
	T[l].r=c;
      }
      l=c;
      T[c].p=id;
    }	
  }
  for(i=0;i<n;i++){
    if(T[i].p == -1){
      r = i;
    }
  }
  rec(r,0);
  for(i=0;i<n;i++){
    print(i);
  }
  return 0;
}

void rec(int a,int b){
  C[a] = b;
  if(T[a].r != -1)rec(T[a].r,b);
  if(T[a].l != -1)rec(T[a].l,b+1);
}
void print(int a){
  int i,c;
  printf("node %d: ",a);
  printf("parent = %d, ",T[a].p);
  printf("depth = %d, ",C[a]);
  if(T[a].p == -1){
    printf("root, ");
  }else if(T[a].l == -1){
    printf("leaf, ");
  }else{
    printf("internal node, ");
  }
  printf("[");
  c = T[a].l;
  while(c != -1){
    printf("%d",c);
    if(T[c].r!=-1){
      printf(", ");
    }
    c = T[c].r;
  }
  printf("]\n");
}

