Test instructions is this, give an operator only + and *, the number is between 1 to 9 of the calculation, you want to add a pair of parentheses, so that the result of the calculation as large as possible, to ensure a maximum of 15 multiplication sign.

Obviously, to let the parentheses can affect the result of the original operation, it is necessary to affect the multiplication, then the addition of the pair of parentheses must have at least one with multiplication sign is adjacent, just multiplication sign the number is very small, then directly enumerate the position of the parentheses, each time to calculate the current solution update ans can be.

#include <map> #include <string> #include <cstring> #include <cstdio> #include <cstdlib># include<cmath> #include <queue> #include <vector> #include <iostream> #include <algorithm > #include <bitset> #include <climits> #include <list> #include <iomanip> #include <stack > #include <set>using namespace std;typedef long long ll;ll x[3000];bool s[3000];ll work (int l,int r,int l1,int R1) {ll ans=0;for (int i=l;i<=r;i++) {if (I==L1) i=r1;if (s[i]) ans+=x[i];else{ll t=1;for (int j=i;j<=r;j++) {if (J==L1) j =r1;t*=x[j];if (s[j]| | J==R) {i=j;break;}} ans+=t;}} return ans;} int main () {int n=0,m=0;for (int i=0;;; i++) {char C=getchar (), if (c== ' \ n ') break;if (i&1) s[m++]= (c== ' + '); elsex[n++]=c-' 0 ';} ll Ans=work (0,n-1,-1,-1); for (int. i=0;i<m;i++) if (!s[i]) {for (int j=0;j<=i;j++) {ll t=work (j,i,-1,-1); Swap (t,x[i ]); Ans=max (Ans,work (0,n-1,j,i)); swap (t,x[i]);} for (int j=i+1;j<n;j++) {ll t=work (i+1,j,-1,-1); swap (t,x[j]); Ans=max (Ans,work (0,n-1,i+1,j)); swap(T,x[j]);}} Cout<<ans;}

Time limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output

Vanya is doing he maths homework. He has a expression of form, where *x*1,? *x* 2,?...,? *x* *N* is digits from1To9, and sign represents either a plus '+' or the multiplication sign' * '. Vanya needs to add OnePair of brackets in this expression so that is maximize the value of the resulting expression.

Input

The first line contains expression*s*(1?≤?| *S*|? ≤?5001,| *S*|is odd), it odd positions only contain digits from1To9, and even positions only contain signs?+?and?*?.

The number of signs ? * doesn ' t exceed 15.

Output

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

Sample Test (s) 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 is valid, for instance, (3)? *?4?*?5?=?60).

Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.

Codeforces 552 E Vanya and Brackets