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).
x = []
def cal(a,sp=1):
    n = len(a)
    st = []
    while(len(st) > 0):
        st.pop()
    i = 0
    while(i < n):
        if(a[i] >= '0' and a[i] <= '9'):
            st.append((long)(a[i]))
        elif(a[i] == '*'):
            u = st[len(st)-1]
            st.pop()
            if(a[i+1] == 'x'):
                u *= sp
            else:
                u *= (long)(a[i+1])
            st.append(u)
            i += 1
        i += 1
    return sum(st)
def main():
    s = raw_input()
    s = '1*' + s + '*1'
    n = len(s)
    ans = cal(s)
    for i in xrange(n):
        if(s[i] == '*'):
            x.append(i)
    sz = len(x)
    for i in xrange(sz):
        for j in xrange(i+1,sz):
            l = x[i]
            r = x[j]
            if(l + 1 == r - 1):
                continue
            sp = cal(s[l+1:r])
            ss = s[:l+1] + 'x' + s[r:]
            ans = max(ans,cal(ss,sp))
    print(ans)
main()