human
A graph G = (V, E) is a data structure where V is a finite set of vertices and E is a binary relation on V represented by a set of edges. Fig. 1 illustrates an example of a graph (or graphs).

Fig. 1

A free tree is a connnected, acyclic, undirected graph. A rooted tree is a free tree in which one of the vertices is distinguished from the others. A vertex of a rooted tree is called "node."

Your task is to write a program which reports the following information for each node u of a given rooted tree T:

* node ID of u
* parent of u
* depth of u
* node type (root, internal node or leaf)
* a list of chidlren of u


If the last edge on the path from the root r of a tree T to a node x is (p, x), then p is the parent of x, and x is a child of p. The root is the only node in T with no parent.

A node with no children is an external node or leaf. A nonleaf node is an internal node

The number of children of a node x in a rooted tree T is called the degree of x.

The length of the path from the root r to a node x is the depth of x in T.

Here, the given tree consists of n nodes and evey node has a unique ID from 0 to n-1.

Fig. 2 shows an example of rooted trees where ID of each node is indicated by a number in a circle (node). The example corresponds to the first sample input.

Fig. 2

Note

You can use a left-child, right-sibling representation to implement a tree which has the following data:

* the parent of u
* the leftmost child of u
* the immediate right sibling of u

Constraints

* 1 ≤ n ≤ 100000

Input

The first line of the input includes an integer n, the number of nodes of the tree.

In the next n lines, the information of each node u is given in the following format:

id k c1 c2 ... ck

where id is the node ID of u, k is the degree of u, c1 ... ck are node IDs of 1st, ... kth child of u. If the node does not have a child, the k is 0.

Output

Print the information of each node in the following format ordered by IDs:

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

p is ID of its parent....
assistant
#Here is Python code to print the information of each node in the following format ordered by IDs:
.

class Node:
    def __init__(self):
        self.parent = -1
        self.left = -1
        self.right = -1

def getDepth(u):
    d = 0
    while Nodes[u].parent != -1:
        u = Nodes[u].parent
        d += 1
    return d

def printChildren(u):
    c = Nodes[u].left
    output_list = []
    while c != -1:
        output_list.append(c)
        c = Nodes[c].right
    return output_list

# ノードの情報を出力する。
def printNodes(u):
    output_str = "node " + str(u) + ": parent = " + str(Nodes[u].parent) + ", depth = " + str(getDepth(u))
    if -1 == Nodes[u].parent:
        output_str = output_str + ", root, "
    elif Nodes[u].left != -1:
        output_str = output_str + ", internal node, "
    else:
        output_str = output_str + ", leaf, "
    # output_str += printChildren(u)
    print(output_str, "[{}]".format(", ".join(map(str, printChildren(u)))), sep="")

Nodes = []
for i in range(100000):
    tmp_obj = Node()
    Nodes.append(tmp_obj)

# 入力
n = int(input())

for tmp_count in range(n):
    input_val = list(map(int, input().split()))
    if 0 != input_val[1]:
        # 最も左の子の情報
        Nodes[input_val[0]].left = input_val[2]
        # 親の情報
        Nodes[input_val[2]].parent = input_val[0]
        
        for i in range(input_val[1] - 1):
            # 右の兄弟の情報
            Nodes[input_val[i+2]].right = input_val[i+3]
            # 親の情報
            Nodes[input_val[i+3]].parent = input_val[0]

for i in range(n):
    printNodes(i)