#include <bits/stdc++.h>
int main() {
  int a, b, c, x, y, z, w, m, n;
  scanf("%d%d%d", &a, &b, &c);
  x = a + b + c;
  y = a + (b * c);
  z = a * (b + c);
  w = a * b * c;
  m = (a + b) * c;
  n = (a * b) + c;
  if (x >= y && x >= z && x >= w && x >= m && x >= n)
    printf("%d", x);
  else if (y >= x && y >= z && y >= w && y >= m && y >= n)
    printf("%d", y);
  else if (z >= x && z >= y && z >= w && z >= m && z >= n)
    printf("%d", z);
  else if (w >= x && w >= z && w >= y && w >= m && w >= n)
    printf("%d", w);
  else if (m >= x && m >= z && m >= w && m >= y && m >= n)
    printf("%d", m);
  else if (n >= x && n >= z && n >= w && n >= m && n >= y)
    printf("%d", n);
  return 0;
}

### Prompt

Please formulate a Cpp solution to the following problem:

Petya studies in a school and he adores Maths. His class has been studying arithmetic expressions. On the last class the teacher wrote three positive integers a, b, c on the blackboard. The task was to insert signs of operations '+' and '*', and probably brackets between the numbers so that the value of the resulting expression is as large as possible. Let's consider an example: assume that the teacher wrote numbers 1, 2 and 3 on the blackboard. Here are some ways of placing signs and brackets:

  * 1+2*3=7 
  * 1*(2+3)=5 
  * 1*2*3=6 
  * (1+2)*3=9 



Note that you can insert operation signs only between a and b, and between b and c, that is, you cannot swap integers. For instance, in the given sample you cannot get expression (1+3)*2.

It's easy to see that the maximum value that you can obtain is 9.

Your task is: given a, b and c print the maximum value that you can get.

Input

The input contains three integers a, b and c, each on a single line (1 ≤ a, b, c ≤ 10).

Output

Print the maximum value of the expression that you can obtain.

Examples

Input

1
2
3


Output

9


Input

2
10
3


Output

60

### Response

```cpp
#include <bits/stdc++.h>
int main() {
  int a, b, c, x, y, z, w, m, n;
  scanf("%d%d%d", &a, &b, &c);
  x = a + b + c;
  y = a + (b * c);
  z = a * (b + c);
  w = a * b * c;
  m = (a + b) * c;
  n = (a * b) + c;
  if (x >= y && x >= z && x >= w && x >= m && x >= n)
    printf("%d", x);
  else if (y >= x && y >= z && y >= w && y >= m && y >= n)
    printf("%d", y);
  else if (z >= x && z >= y && z >= w && z >= m && z >= n)
    printf("%d", z);
  else if (w >= x && w >= z && w >= y && w >= m && w >= n)
    printf("%d", w);
  else if (m >= x && m >= z && m >= w && m >= y && m >= n)
    printf("%d", m);
  else if (n >= x && n >= z && n >= w && n >= m && n >= y)
    printf("%d", n);
  return 0;
}

```