#include <stdio.h>

#define MAX 100005
#define NIL -1

int p[MAX],lc[MAX],rs[MAX],d[MAX];
int Depth(int n)
{
  int d=0;
  while(p[n]!=NIL)
  {
    n=p[n];
    d+=1;
  }
  return d;
}
void printChildren(int n)
{
  int child = lc[n];
  while(child!=NIL)
  {
    printf("%d",child);
    child=rs[child];
  }
}
int main()
{
  int i,j,id,num,nc,child,leftc,r;
  scanf("%d",&num);
  for(i=0;i<num;i++)
  {
    p[i]=lc[i]=rs[i]=NIL;
  }
  for(i=0;i<num;i++)
  {
    scanf("%d%d",&id,&nc);

    for(j=0;j<nc;j++)
    {
      scanf("%d",&child);
      if(j!=0)
      {
        rs[leftc]=child;
      }
      else
      {
        lc[id]=child;
      }
      leftc=child;
      p[child]=id;
    }
  }
  for(i=0;i<num;i++)
  {
    d[i]=Depth(i);
  }
  for(i=0;i<num;i++)
  {
    j=0;
    printf("node %d: parent = %d, depth = %d, ",i,p[i],d[i]);
    if(p[i]==NIL)printf("root, ");
    else if(lc[i]==NIL)printf("leaf, ");
    else printf("internal node, ");
    printf("[");
    child=lc[i];
    while(child!=NIL)
    {
      if(j!=0)printf(", ");
      printf("%d",child);
      child=rs[child];
      j++;
    }
    printf("]\n");
  }
  return 0;
}
