Vanya is doing his maths homework. He has an expression of form <image>, where x1, x2, ..., xn are digits from 1 to 9, and sign <image> 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.

Input

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.

Output

In the first line print the maximum possible value of an expression.

Examples

Input

3+5*7+8*4


Output

303


Input

2+3*5


Output

25


Input

3*4*5


Output

60

Note

Note to the first sample test. 3 + 5 * (7 + 8) * 4 = 303.

Note to the second sample test. (2 + 3) * 5 = 25.

Note to the third sample test. (3 * 4) * 5 = 60 (also many other variants are valid, for instance, (3) * 4 * 5 = 60).
r = "1*" + raw_input() + "*1"

def evaluate(x):
    l = len(x)
    y = []
    i = 0
    while True:
        if i >= l:
            break
        if x[i] == '*':
            j = y.pop()
            y.append(j*x[i+1])
            i += 1
        elif x[i] != '+':
            y.append(x[i])
        i += 1

    return sum(y)

r = [i if i in ['*', '+'] else int(i) for i in r]
b = []
[b.append(i) for i in xrange(len(r)) if r[i] == '*']

res = evaluate(r)
for i in xrange(len(b)):
    j = i+1
    while True:
        if j >= len(b):
            break
        x = evaluate(r[b[i]+1:b[j]])
        m = evaluate(r[:b[i]+1] + [x] + r[b[j]:])
        res = max(m, res)
        j += 1

print res
