#include<stdio.h>
#define NIL -1
typedef struct Node{
  int k,l,m;
}N;

N S[100005];
int T[100005];

int setDepth(int a,int b)
{
  T[a]=b;
  if(S[a].m!=NIL)
    {
      setDepth(S[a].m,b);
    }
  if(S[a].l!=NIL)
    {
      setDepth(S[a].l,b+1);
    }
}


int main()
{
  int i,j,n,l,m,x,y,c;
  scanf("%d",&n);
  for(i=0;i<n;i++)
    {
      S[i].k=NIL;
      S[i].l=NIL;
      S[i].m=NIL;
    }
  for(i=0;i<n;i++)
    {
      scanf("%d%d",&x,&y);
      for(j=0;j<y;j++)
        {
          scanf("%d",&c);
          if(j==0)
            {
              S[x].l=c;
            }
              else
                  S[l].m=c;
                  l=c;
                  S[c].k=x;
                
        }
    }
      for(i=0;i<n;i++)
         if(S[i].k==NIL)
              m=i;
         setDepth(m,0);
  for(i=0;i<n;i++)
    {
      printf("node %d: parent = %d, depth = %d, ",i,S[i].k,T[i]);
      if(S[i].k==NIL)
        {
          printf("root, ");
        }
      else if(S[i].l==NIL)
        {
          printf("leaf, ");
        }
      else
          printf("internal node, ");
        
      printf("[");

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

  return 0;
}
              


