#include<stdio.h>
#define NIL -1
int parent[100001],cleft[100001],right[100001];
int depth(int i){
    int d=0;
    while(parent[i]!=NIL){
        d++;
        i=parent[i];
    }
    return d;
}
void printchildren(int i){
    int c=cleft[i];
    while(c!=NIL && right[c]!=NIL){
        printf("%d, ",c);
        c=right[c];
    }
    if(cleft[i]!=NIL)printf("%d",c);
}

int main(){
    int n;scanf("%d",&n);
    int i;
    for(i=0;i<=n-1;i++)parent[i]=cleft[i]=right[i]=NIL;
    for(i=0;i<=n-1;i++){
        int id,k;
        scanf("%d %d",&id,&k);
        int c[k+1],j;
        for(j=1;j<=k;j++)scanf("%d",&c[j]);
        if(k>=1){
            parent[c[1]]=id;
            cleft[id]=c[1];
        }
        for(j=2;j<=k;j++){
            parent[c[j]]=id;
            right[c[j-1]]=c[j];
        }
    }
    
    
    for(i=0;i<=n-1;i++){
        printf("node %d: parent = %d, depth = %d, ",i,parent[i],depth(i));
        if(parent[i]==NIL) printf("root, [");
        else if(cleft[i]==NIL) printf("leaf, [");
        else printf("internal node, [");
        printchildren(i);
        printf("]\n");
        
    }
    
    return 0;
}