#include <stdio.h>
#include <stdlib.h>
#define N 100000
int parent(int,int);
int dep(int,int);
int *D[N];
int main(){
  int n,id,i,j,k,size;
  scanf("%d",&n);
  for(i=0;i<n;i++){
    scanf("%d",id);
    scanf("%d",&size);
    D[id]=(int*)malloc(sizeof(int)*size);
    for(j=0;j<size;j++){
      scanf("%d",&D[id][j]);
    }
  }
  for(i=0;i<n;i++){
    printf("node %d: ",i);
    printf("parent = %d, ",parent(n,i));
    printf("depth = %d, " ,dep(n,i));
    
    if(dep(n,i)==0) printf("root, ");
    else if(D[i][0]==NULL) printf("leaf, ");
    else printf("internal node, ");
    printf("[%d]\n",D[i]);
  }
  free(D[id]);
  return 0;
}


int parent(int n,int m){
    int i,j,flag=0;
      for(i=0;i<n;i++){
	if(i=!m){
	  for(j=0;D[i][j]!=NULL;j++){
	    if(D[i][j]==m){
	      flag++;
	      break;
	    }
	  }
	}
	if(flag!=0) break;
      }
      if(flag!=0) return i;
      else return -1;
}

int dep(int n,int m){
  int i,j,count=0;
  for(i=0;i<n;i++){
    for(j=0;D[i][j]!=NULL;j++){
      if(D[i][j]==m){
	count++;
	dep(n,i);
      }
    }
  }
  return count;
}