using System;
using System.Collections.Generic;
using System.Linq;

namespace ALDS1_7_B
{
    class Program
    {
        static void Main(string[] args)
        {
            string line;
            int[] vals;

            //入力
            line = Console.ReadLine().Trim();
            var nodeCount = int.Parse(line);

            var nodes = new Nodes<int>();
            for (int i = 0; i < nodeCount; i++)
            {
                line = Console.ReadLine().Trim();
                vals = line.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(e => int.Parse(e)).ToArray();

                var node = nodes.GetNode(vals[0]);
                if (vals[1] != -1)
                {
                    nodes.SetLeft(node, vals[1]);
                }
                if (vals[2] != -1)
                {
                    nodes.SetRight(node, vals[2]);
                }
            }

            // 出力
            foreach (var node in nodes.GetList())
            {
                Console.WriteLine(node.ToString());
            }
        }
    }

    public class Nodes<T>
    {
        private readonly Dictionary<T, Node> nodes = new Dictionary<T, Node>();

        public Node GetNode(T val)
        {
            Node node;
            if (!nodes.TryGetValue(val, out node))
            {
                node = new Node() { Value = val };
                nodes.Add(val, node);
            }
            return node;
        }

        public void SetLeft(Node node, T val)
        {
            var left = GetNode(val);
            left.Parent = node;
            node.Left = left;
        }

        public void SetRight(Node node, T val)
        {
            var right = GetNode(val);
            right.Parent = node;
            node.Right = right;
        }

        public IEnumerable<Node> GetList()
        {
            return nodes.OrderBy(x => x.Key).Select(x => x.Value);
        }

        public class Node
        {
            public T Value { get; internal set; }
            public Node Parent { get; internal set; }
            public Node Left { get; internal set; }
            public Node Right { get; internal set; }

            public string NodeType
            {
                get
                {
                    if (Parent == null)
                    {
                        return "root";
                    }
                    if (Left != null || Right != null)
                    {
                        return "internal node";
                    }
                    return "leaf";
                }
            }

            public Node Sibling
            {
                get
                {
                    if (Parent == null)
                    {
                        return null;
                    }
                    if (Parent.Left == this)
                    {
                        return Parent.Right;
                    }
                    return Parent.Left;
                }
            }

            public int Degree
            {
                get
                {
                    var i = 0;
                    if (Left != null) i++;
                    if (Right != null) i++;
                    return i;
                }
            }

            public int Depth
            {
                get
                {
                    if (Parent == null)
                    {
                        return 0;
                    }
                    return Parent.Depth + 1;
                }
            }

            public int Hight
            {
                get
                {
                    var left = (Left != null) ? Left.Hight + 1 : 0;
                    var right = (Right != null) ? Right.Hight + 1 : 0;
                    return Math.Max(left, right);
                }
            }

            public override string ToString()
            {
                return $"node {Value}: parent = {(Parent != null ? Parent.Value.ToString() : "-1")}, sibling = {(Sibling != null ? Sibling.Value.ToString() : "-1")}, degree = {Degree}, depth = {Depth}, height = {Hight}, {NodeType}";
            }
        }
    }


}


Measured memory_bytes: 18484