#include<stdio.h>
#define max 100005
#define NIL -1

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

Node T[max];
int n,H,D[max];

int Depth(int u){
  int d=0;
  for(;T[u].p!=NIL;d++) u=T[u].p;
  return d;
}

void print(int u){

  int main(){
    int i,j,k,id,c,l;

    scanf("%d",&n);

    for(i=0;i<n;i++) T[i].p=T[i].l=T[i].r=NIL;

    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;
      }
    }

    H=0;
    for(i=0;i<n;i++){
      D[i]=Depth(i);
      if(D[i]>H) H=D[i];
    }

    for(i=0;i<n;i++){
      printf("node %d: parent = %d, depth = %d, ",i,T[i].p,D[i]);

      if(T[i].p==NIL) printf("root, ");
      else if(T[i].l==NIL) printf("leaf, ");
      else printf("internal node, ");

      printf("[");
      for(j=0,c=T[i].l;c!=NIL;j++,c=T[c].r){
	if(j) printf(", ");
	printf("%d",c);
      }
      printf("]\n");
    }
  }
  return 0;
}

