#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
???????????¨
??????????????????????????¨ T ???????????? u ???????????????
??\???????????±???????????????????????°????????????????????????????????????

u ???????????????
u ?????????????????????
u ?????±???
u ?????????????¨??????????????????¨?????????????????????
u ??????????????????
????????§???????????????????????¨??? n ????????????????????????
???????????? 0 ?????? n???1 ???????????????????????????????????????????????¨????????????

??\???
??\??????????????????????????????????????° n ????????????????????????
?¶???? n ?????????????????????????????±????¬??????¢?????§??????????????????????????????

id k c1 c2 ... ck

id ?????????????????????k ????¬???°?????¨????????????c1 c2 ...ck ???
 1 ??????????????????????????????... kk ?????????????????????????????????????????????

??????
?¬??????¢?????§??????????????±??????????????????????????????
??????????????±???????????????????°????????????????????????????????????????

node id: parent = p , depth = d, type, [c1...ck]

p ?????????????????????????????????????????????????????????????????´?????? -1 ??¨????????????
d ??????????????±?????????????????????

type??????????????¨??????????????????????????????????????? root???internal node???leaf ?????????????????????????????§??????
?????????????????????????????¨??????????????¶?????????????????´?????? root ??¨????????????

c1...ck ????????????????????§??????
????????¨??¨???????????\?????????????????????????????????????????????
?????????????????????????????¨???????????????????????????????????????????????¢???????¢?????????????????????????

"""
import sys

I = 0
L = 1
R = 2
P = 3
B = 4
D = 5
H = 6

def setd(A, id, d):
    n = A[id]
#    print("depth d:{} n:{} {}".format(d,id,n))
    n[D] = d
    ld = 0
    rd = 0
    if n[L] > -1:
       ld = setd(A, n[L], d + 1) + 1
    if n[R] > -1:
       rd = setd(A, n[R], d + 1) + 1
    if ld > rd:
        n[H] = ld
    else:
        n[H] = rd
    return n[H]

def getroot(A, id):
    if A[id][P] > -1:
        return getroot(A,A[id][P])
    return A[id][I]

def main():

    """ ????????? """
    num = int(input().strip())
    istr = sys.stdin.read()
    nlist = list(istr.splitlines())
    
    nodes = [[i, -1, -1, -1, -1, 0, 0] for i in range(num)]

    for nstr in nlist:
        i = list(map(int,nstr.split()))
        n = nodes[i[I]]
        n[I] = i[I]
        if i[L] > -1:
            n[L] = i[L]
            nodes[n[L]][P] = i[I]
            nodes[n[L]][B] = i[R]
        if i[R] > -1:
            n[R] = i[R]
            nodes[n[R]][P] = i[I]
            nodes[n[R]][B] = i[L]
#        print("set n:{} {} {}".format(n[I],n,i))

    r = getroot(nodes, 0)
    setd(nodes,r, 0)

    for id in range(num):
        n = nodes[id]
#        print("print n:{} {}".format(id,n))
        type = "leaf"
        children = ""
        cnum = 0

        if n[L] > -1:
            type = "internal node"
            cnum += 1

        if n[R] > -1:
            type = "internal node"
            cnum += 1

        if n[P] == -1:
            type = "root"

        print("node {}: parent = {}, sibling = {}, degree = {}, depth = {}, height = {}, {}".format(n[I], n[P], n[B], cnum, n[D], n[H], type))

if __name__ == '__main__':
    main()

Measured memory_bytes: 7912