#include <stdio.h>
#define N 100000
#define NIL -1

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

Node_t T[N];
int n,D[N];

void setDep(int u,int p){
  D[u]=p;
  if(T[u].r!=NIL) setDep(T[u].r,p);
  if(T[u].l!=NIL) setDep(T[u].l,p+1);
}

int main(){
int i,j=0,id,k,c,l,r,op;
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;
    }
  }

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

  setDep(r,0);

  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,op=T[i].l; op != NIL; j++, op = T[op].r){
      if(j) printf(", ");
      printf("%d",op);
    }
    /*op=T[i].l;//?????????????????¨???
    while(op!=NIL){
      if(j) printf(", ");
      printf("%d",op);
      op=T[op].r;
      j++;
    }*/
    printf("]\n");
  }
  return 0;
}