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.
strI	= input()

def mul(strI):
	strL = list(strI)
	it = 0
	max = 0
	pos = 0
	results = {}
	
	for i in range(1, len(strL)-1, 2):
		if strL[i] == '+':
			it += 1
			if max < it: max = it			
			if max <= 1: pos = i
		else:
			if max != 0:
				j = eval(''.join(strL[pos-1:pos-1+(max*2+1)]))
				results[j] = [pos-1, pos-1+(max*2+1)]
			it = 0
			max = 0
		if i+2 == len(strL):
			j = eval(''.join(strL[pos-1:pos-1+(max*2+1)]))
			results[j] = [pos-1, pos-1+(max*2+1)]
			
	return results

def search(strI):
	if strI.rfind('+') == -1 or strI.rfind('*') == -1:
		return eval(strI)
	
	cd = mul(strI)
	a = (sorted(cd.items()))[-1]
	coords = a[-1]
	
	return eval(strI[:coords[0]] + '(' + strI[coords[0]:coords[1]] + ')' + strI[coords[1]:])
		
result = search(strI)
print(result, end='')