You manage to answer the child’s questions and they finish part 1 of their homework, but get stuck when they reach the next section: advanced math.

Now, addition and multiplication have different precedence levels, but they’re not the ones you’re familiar with. Instead, addition is evaluated before multiplication.

For example, the steps to evaluate the expression 1 + 2 * 3 + 4 * 5 + 6 are now as follows:

1 + 2 * 3 + 4 * 5 + 6
  3   * 3 + 4 * 5 + 6
  3   *   7   * 5 + 6
  3   *   7   *  11
     21       *  11
         231

Here are the other examples from above:

Assignment

What do you get if you add up the results of evaluating the homework problems using these new rules? This is done in the following way:

These static functions must be located in the class Submission.

Example

In this interactive session we assume the text file homework.txt1 to be located in the current directory.

> Submission.evaluate("1 + 2 * 3 + 4 * 5 + 6")
231
> Submission.evaluate("1 + (2 * 3) + (4 * (5 + 6))')
51
> Submission.evaluate("2 * 3 + (4 * 5)')
46
> Submission.evaluate("5 + (8 * 3 + 9 + 3 * 4 * 3)')
1445
> Submission.evaluate("5 * 9 * (7 * 3 * 3 + 9 * 3 + (8 + 6 * 4))')
669060
> Submission.evaluate("((2 + 4 * 9) * (6 + 9 * 8 + 6) + 6) + 2 + 4 * 2')
23340

> Submission.homework("homework.txt")
694173