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).
import java.util.*;

public class Problem{
    public static Long middlePart = 0L;
    public static Long calc(String s, int start, int end) {

        Long x = 0L, y = 1L;

        for (int i = start; i < end; i += 2) {
            Long num;

            if (s.charAt(i) == '^')
                num = middlePart;
            else
                num = 1L * (s.charAt(i) - 48);

            if (i + 1 < end && s.charAt(i + 1) == '+') {
                y *= num;
                x += y;
                y = 1L;
            }
            else
                y *= num;
        }
        y *= s.charAt(end) - 48;
        x += y;
        return x;
    }
    public static void main(String []args)   {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        s = "1*" + s + "*1";
        ArrayList<Integer> pos = new ArrayList<>();
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == '*') pos.add(i);
        }

        long ans = Integer.MIN_VALUE;
        for (int i = 0; i < pos.size(); i++) {
            for (int j = i + 1; j < pos.size(); j++) {

                int open = pos.get(i), close = pos.get(j);
                middlePart = calc(s, open + 1, close - 1);

                String ss = s.substring(0, open + 1) + '^' + s.substring(close, s.length());
                long pans = calc(ss, 0, ss.length() - 1);
                ans = Long.max(ans, pans);
            }
        }
        System.out.print(ans);

    }
}