static void Main(string[] args)
        {
            #region Read input
            int n = int.Parse(Console.ReadLine());

            for (int i = 0; i < n - 1; i++)
            {
                string[] tokens = Console.ReadLine().Split(new char[] { '<', '-', ' ', ')', '(' }, StringSplitOptions.RemoveEmptyEntries);
                int parent = int.Parse(tokens[0]);
                int child = int.Parse(tokens[1]);
                
                if (nodes.ContainsKey(parent) && nodes.ContainsKey(child))
                {
                    nodes[parent].AddChild(nodes[child]);
                    nodes[child].AddChild(nodes[parent]);
                }
                else if (nodes.ContainsKey(parent))
                {
                    Node childNode = new Node(child);
                    nodes.Add(childNode.Value, childNode);
                    nodes[parent].AddChild(nodes[child]);
                    nodes[child].AddChild(nodes[parent]);
                }
                else if (nodes.ContainsKey(child))
                {
                    Node parentNode = new Node(parent);
                    nodes.Add(parentNode.Value, parentNode);
                    nodes[parent].AddChild(nodes[child]);
                    nodes[child].AddChild(nodes[parent]);
                }
                else
                {
                    Node childNode = new Node(child);
                    Node parentNode = new Node(parent);
                    nodes.Add(childNode.Value, childNode);
                    nodes.Add(parentNode.Value, parentNode);
                    nodes[parent].AddChild(nodes[child]);
                    nodes[child].AddChild(nodes[parent]);
                }

            }
            #endregion

            foreach (var node in nodes)
            {
                if (node.Value.ChildrenNumber == 1)
                {
                    FindMaxPath(node, 0);
                    visited.Clear();
                }
            }

            Console.WriteLine(maxPath);
        }
 public void AddChild(Node child)
 {
     children.Add(child);
 }