Problem 71e. Height of expression trees.

Given an expression containing letters a, b, c, ..., as operands, and the symbols +, -, *, / as binary operations, and the symbols ( and ) as gouping symbols. For example,

a + b * c / (a + b) * c

The expression tree of the given expression is obtained by using the operation symbol as parent node and the two operands (letters or nodes) as children node. For example, the above expression has expression tree:

    /  \
   a   [*]
      /   \
    [/]    c
    /   \
  [*]   [+]
 /  \   /  \
b    c a    b

Note that this tree does not show the parentheses in the original expression, since the order of operations indicated by the parentheses have been taken cared of by the tree structure.

The height of a tree is the number of edges from the root to the farthest away leaf. For example the tree above has height 4.

Problem: Given an expression, find the height of its expression tree.

Input. The expression, like above.

Output. The number giving the height of the expression tree.