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.
def Precedence_Order(opd):
    if opd == '+':
        return 1
    elif opd == "*":
        return 2
    else:
        return 0

def Operation(num1, num2, opd):
    if opd == '+':
        return num1 + num2
    if opd == '-':
        return num1 - num2
    if opd == '*':
        return num1 * num2
    if opd == '/':
        return num1 // num2


def eval(expression):
    values = []
    ops = []
    i = 0

    while i < len(expression):

        if expression[i] == ' ':
            i += 1
            continue

        elif expression[i] == '(':
            ops.append(expression[i])

        elif expression[i].isdigit():
            val = 0

            while (i < len(expression) and
                   expression[i].isdigit()):
                val = (val * 10) + int(expression[i])
                i += 1

            values.append(val)

            i -= 1

        elif expression[i] == ')':

            while len(ops) != 0 and ops[-1] != '(':
                val2 = values.pop()
                val1 = values.pop()
                opd = ops.pop()

                values.append(Operation(val1, val2, opd))
            ops.pop()

        else:

            while (len(ops) != 0 and Precedence_Order(ops[-1]) >= Precedence_Order(expression[i])):
                val2 = values.pop()
                val1 = values.pop()
                opd = ops.pop()

                values.append(Operation(val1, val2, opd))

            ops.append(expression[i])

        i += 1

    while len(ops) != 0:
        val2 = values.pop()
        val1 = values.pop()
        opd = ops.pop()

        values.append(Operation(val1, val2, opd))

    return values[-1]


def allDots(s):
    l=[]
    for i in range(len(s)):
        if s[i]=="*":
            l.append(i)
    return l

def putParentheses(s,i,j):
    return s[:i+1]+"("+s[i+1:j]+")"+s[j:]

def main(s):
    s="1*"+s+"*1"
    l = allDots(s)
    m=eval(s)

    for i in range(len(l)):
        for j in range(i+1,len(l)):

            m=max(m,eval(putParentheses(s, l[i], l[j])))
    return m

s=input("")

print(main(s))



