We have a rectangular parallelepiped of size A×B×C, built with blocks of size 1×1×1. Snuke will paint each of the A×B×C blocks either red or blue, so that:

* There is at least one red block and at least one blue block.
* The union of all red blocks forms a rectangular parallelepiped.
* The union of all blue blocks forms a rectangular parallelepiped.



Snuke wants to minimize the difference between the number of red blocks and the number of blue blocks. Find the minimum possible difference.

Constraints

* 2≤A,B,C≤10^9

Input

The input is given from Standard Input in the following format:


A B C


Output

Print the minimum possible difference between the number of red blocks and the number of blue blocks.

Examples

Input

3 3 3


Output

9


Input

2 2 4


Output

0


Input

5 3 5


Output

15
import java.util.*;

public class Main {

    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);

        long a, b, c;
        a = sc.nextLong();
        b = sc.nextLong();
        c = sc.nextLong();

        long a_calc = 0;
        long b_calc = 0;
        long c_calc = 0;
        long min = 0;

        if (a%2 == 0 || b%2 == 0 || c%2 == 0){
            System.out.println(min);
        }else{
            a_calc = (a/2+1-a/2)*b*c;
            b_calc = a*(b/2+1-b/2)*c;
            c_calc = a*b*(c/2+1-c/2);

            min = a_calc;
            if(min > b_calc)min = b_calc;
            if(min > c_calc)min = c_calc;
            System.out.println(min);
        }

    }
}