Vanya is doing his maths homework. He has an expression of form <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/12fd75e59feeb788ff8b791f7194301b0d005ad6.png" style="max-width: 100.0%;max-height: 100.0%;"/>, where *x*<sub class="lower-index">1</sub>, *x*<sub class="lower-index">2</sub>, ..., *x*<sub class="lower-index">*n*</sub> are digits from 1 to 9, and sign <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/5535bcdec4c47f48bc7dcaaf51ba2b5901a202e5.png" style="max-width: 100.0%;max-height: 100.0%;"/> represents either a plus '+' or the multiplication sign '*'. Vanya needs to add one pair of brackets in this expression so that to maximize the value of the resulting expression.
The first line contains expression *s* (1 ≤ |*s*| ≤ 5001, |*s*| is odd), its odd positions only contain digits from 1 to 9, and even positions only contain signs  +  and  * . 

The number of signs  *  doesn't exceed 15.
# LUOGU_RID: 116605466
def calculate_max_value(sequence):
    N = len(sequence)

    dp_max = [0] * N
    dp_min = [0] * N

    dp_max[0] = int(sequence[0])
    dp_min[0] = int(sequence[0])

    for i in range(1, N, 2):
        if sequence[i] == '+':
            dp_max[i+1] = max(dp_max[i] + int(sequence[i+1]), dp_max[i+1])
            dp_min[i+1] = min(dp_min[i] + int(sequence[i+1]), dp_min[i+1])
        elif sequence[i] == '*':
            dp_max[i+1] = max(dp_max[i] * int(sequence[i+1]), dp_max[i+1])
            dp_min[i+1] = min(dp_min[i] * int(sequence[i+1]), dp_min[i+1])

    return dp_max[N-1]
