Buggy python submission (verdict: Runtime Error):
import sys

nil = -1

class Node:
    def __init__(self, p, l, r):
        self.p = p
        self.l = l
        self.r = r

def depth_rec(u, p, depth):
    depth[u] = p
    if tree[u].r != nil:
        depth_rec(tree[u].r, p, depth)
    if tree[u].l != nil:
        depth_rec(tree[u].l, p + 1, depth)
    pass

n = int(sys.stdin.readline())

tree = [Node(nil, nil, nil) for i in range(n)]
depth = [0] * n

for i in range(n):
    line = [int(i) for i in sys.stdin.readline().split()]
    vertex = line[0]

    for (j, c) in enumerate(line[2:]):
        if j == 0:
            tree[vertex].l = c
        else:
            tree[l].r = c

        l = c
        tree[c].p = vertex

'''
for i in range(n):
    print(tree[i].p, tree[i].l, tree[i].r)
'''
for i in range(n):
    if tree[i].p == nil:
        root = i

depth_rec(root, 0, depth)

# print(depth)

for vtx in range(n):
    print("node {}: parent = {}, depth = {}, ".format(vtx, tree[vtx].p, depth[vtx]), end = "")

    if tree[vtx].p == nil:
        print("root, ", end = "")
    elif tree[vtx].l == nil:
        print("leaf, ", end = "")
    else:
        print("internal node, ", end = "")

    children = []
    child = tree[vtx].l

    while child != nil:
        children.append(child)
        child = tree[child].r

    print(children)

Fixed submission:
import sys

nil = -1

def set_depth(v, depth):
    tree[v][2] = depth

    for child in tree[v][1]:
        set_depth(child, depth + 1)

n = int(input())

tree = [[nil, [], 0, 'leaf'] for i in range(n)]

for i in range(n):
    line = [int(i) for i in sys.stdin.readline().split()]
    t_id = line[0]
    children = line[2:]

    tree[t_id][1] = children

    if children:
        tree[t_id][3] = 'internal node'

    for child in children:
        tree[child][0] = t_id

for t_id in range(n):
    if tree[t_id][0] == nil:
        tree[t_id][3] = 'root'
        r = t_id
        break

# print(tree)

set_depth(r, 0)

for t_id in range(n):
    parent = tree[t_id][0]
    depth = tree[t_id][2]
    children = tree[t_id][1]
    type_t = tree[t_id][3]

    print('node {}: parent = {}, depth = {}, {}, {}'.format(
            t_id, parent, depth, type_t, children))

Buggy python submission (verdict: Runtime Error):
import sys
sys.setrecursionlimit(10 ** 6)

nil = -1

class Node:
    def __init__(self, p, l, r):
        self.p = p
        self.l = l
        self.r = r

def depth_rec(u, p, depth):
    depth[u] = p
    if tree[u].r != nil:
        depth_rec(tree[u].r, p, depth)
    if tree[u].l != nil:
        depth_rec(tree[u].l, p + 1, depth)
    pass

n = int(sys.stdin.readline())

tree = [Node(nil, nil, nil) for i in range(n)]
depth = [0] * n

for i in range(n):
    line = [int(i) for i in sys.stdin.readline().split()]
    vertex = line[0]

    for (j, c) in enumerate(line[2:]):
        if j == 0:
            tree[vertex].l = c
        else:
            tree[l].r = c

        l = c
        tree[c].p = vertex

'''
for i in range(n):
    print(tree[i].p, tree[i].l, tree[i].r)
'''
for i in range(n):
    if tree[i].p == nil:
        root = i

depth_rec(root, 0, depth)

# print(depth)

for vtx in range(n):
    print("node {}: parent = {}, depth = {}, ".format(vtx, tree[vtx].p, depth[vtx]), end = "")

    if tree[vtx].p == nil:
        print("root, ", end = "")
    elif tree[vtx].l == nil:
        print("leaf, ", end = "")
    else:
        print("internal node, ", end = "")

    children = []
    child = tree[vtx].l

    while child != nil:
        children.append(child)
        child = tree[child].r

    print(children)

Fixed submission:
import sys

nil = -1

def set_depth(v, depth):
    tree[v][2] = depth

    for child in tree[v][1]:
        set_depth(child, depth + 1)

n = int(input())

tree = [[nil, [], 0, 'leaf'] for i in range(n)]

for i in range(n):
    line = [int(i) for i in sys.stdin.readline().split()]
    t_id = line[0]
    children = line[2:]

    tree[t_id][1] = children

    if children:
        tree[t_id][3] = 'internal node'

    for child in children:
        tree[child][0] = t_id

for t_id in range(n):
    if tree[t_id][0] == nil:
        tree[t_id][3] = 'root'
        r = t_id
        break

# print(tree)

set_depth(r, 0)

for t_id in range(n):
    parent = tree[t_id][0]
    depth = tree[t_id][2]
    children = tree[t_id][1]
    type_t = tree[t_id][3]

    print('node {}: parent = {}, depth = {}, {}, {}'.format(
            t_id, parent, depth, type_t, children))

Buggy python submission (verdict: Runtime Error):
import sys
sys.setrecursionlimit(10 ** 8)

nil = -1

class Node:
    def __init__(self, p, l, r):
        self.p = p
        self.l = l
        self.r = r

def depth_rec(u, p, depth):
    depth[u] = p
    if tree[u].r != nil:
        depth_rec(tree[u].r, p, depth)
    if tree[u].l != nil:
        depth_rec(tree[u].l, p + 1, depth)
    pass

n = int(sys.stdin.readline())

tree = [Node(nil, nil, nil) for i in range(n)]
depth = [0] * n

for i in range(n):
    line = [int(i) for i in sys.stdin.readline().split()]
    vertex = line[0]

    for (j, c) in enumerate(line[2:]):
        if j == 0:
            tree[vertex].l = c
        else:
            tree[l].r = c

        l = c
        tree[c].p = vertex

'''
for i in range(n):
    print(tree[i].p, tree[i].l, tree[i].r)
'''
for i in range(n):
    if tree[i].p == nil:
        root = i

depth_rec(root, 0, depth)

# print(depth)

for vtx in range(n):
    print("node {}: parent = {}, depth = {}, ".format(vtx, tree[vtx].p, depth[vtx]), end = "")

    if tree[vtx].p == nil:
        print("root, ", end = "")
    elif tree[vtx].l == nil:
        print("leaf, ", end = "")
    else:
        print("internal node, ", end = "")

    children = []
    child = tree[vtx].l

    while child != nil:
        children.append(child)
        child = tree[child].r

    print(children)

Fixed submission:
import sys

nil = -1

def set_depth(v, depth):
    tree[v][2] = depth

    for child in tree[v][1]:
        set_depth(child, depth + 1)

n = int(input())

tree = [[nil, [], 0, 'leaf'] for i in range(n)]

for i in range(n):
    line = [int(i) for i in sys.stdin.readline().split()]
    t_id = line[0]
    children = line[2:]

    tree[t_id][1] = children

    if children:
        tree[t_id][3] = 'internal node'

    for child in children:
        tree[child][0] = t_id

for t_id in range(n):
    if tree[t_id][0] == nil:
        tree[t_id][3] = 'root'
        r = t_id
        break

# print(tree)

set_depth(r, 0)

for t_id in range(n):
    parent = tree[t_id][0]
    depth = tree[t_id][2]
    children = tree[t_id][1]
    type_t = tree[t_id][3]

    print('node {}: parent = {}, depth = {}, {}, {}'.format(
            t_id, parent, depth, type_t, children))

Buggy python submission (verdict: Runtime Error):
import sys
sys.setrecursionlimit(10 ** 9)

nil = -1

class Node:
    def __init__(self, p, l, r):
        self.p = p
        self.l = l
        self.r = r

def depth_rec(u, p, depth):
    depth[u] = p
    if tree[u].r != nil:
        depth_rec(tree[u].r, p, depth)
    if tree[u].l != nil:
        depth_rec(tree[u].l, p + 1, depth)
    pass

n = int(sys.stdin.readline())

tree = [Node(nil, nil, nil) for i in range(n)]
depth = [0] * n

for i in range(n):
    line = [int(i) for i in sys.stdin.readline().split()]
    vertex = line[0]

    for (j, c) in enumerate(line[2:]):
        if j == 0:
            tree[vertex].l = c
        else:
            tree[l].r = c

        l = c
        tree[c].p = vertex

'''
for i in range(n):
    print(tree[i].p, tree[i].l, tree[i].r)
'''
for i in range(n):
    if tree[i].p == nil:
        root = i

depth_rec(root, 0, depth)

# print(depth)

for vtx in range(n):
    print("node {}: parent = {}, depth = {}, ".format(vtx, tree[vtx].p, depth[vtx]), end = "")

    if tree[vtx].p == nil:
        print("root, ", end = "")
    elif tree[vtx].l == nil:
        print("leaf, ", end = "")
    else:
        print("internal node, ", end = "")

    children = []
    child = tree[vtx].l

    while child != nil:
        children.append(child)
        child = tree[child].r

    print(children)

Fixed submission:
import sys

nil = -1

def set_depth(v, depth):
    tree[v][2] = depth

    for child in tree[v][1]:
        set_depth(child, depth + 1)

n = int(input())

tree = [[nil, [], 0, 'leaf'] for i in range(n)]

for i in range(n):
    line = [int(i) for i in sys.stdin.readline().split()]
    t_id = line[0]
    children = line[2:]

    tree[t_id][1] = children

    if children:
        tree[t_id][3] = 'internal node'

    for child in children:
        tree[child][0] = t_id

for t_id in range(n):
    if tree[t_id][0] == nil:
        tree[t_id][3] = 'root'
        r = t_id
        break

# print(tree)

set_depth(r, 0)

for t_id in range(n):
    parent = tree[t_id][0]
    depth = tree[t_id][2]
    children = tree[t_id][1]
    type_t = tree[t_id][3]

    print('node {}: parent = {}, depth = {}, {}, {}'.format(
            t_id, parent, depth, type_t, children))