p03713 AtCoder Beginner Contest 062 - Chocolate Bar
There is a bar of chocolate with a height of H blocks and a width of W blocks. Snuke is dividing this bar into exactly three pieces. He can only cut the bar along borders of blocks, and the shape of each piece must be a rectangle.

Snuke is trying to divide the bar as evenly as possible. More specifically, he is trying to minimize S_{max} - S_{min}, where S_{max} is the area (the number of blocks contained) of the largest piece, and S_{min} is the area of the smallest piece. Find the minimum possible value of S_{max} - S_{min}.

Constraints

* 2 ≤ H, W ≤ 10^5

Input

Input is given from Standard Input in the following format:


H W


Output

Print the minimum possible value of S_{max} - S_{min}.

Examples

Input

3 5


Output

0


Input

4 5


Output

2


Input

5 5


Output

4


Input

100000 2


Output

1


Input

100000 100000


Output

50000
```python
h,w = sorted(list(map(int,input().split())))
if h % 3 == 0 or w % 3 == 0:
  ans = 0
else:
  c1 = ((w//3+1)*h)-((w-1-w//3)*(h//2))
  c2 = ((w-w//3)*(h-h//2))-(w//3*h)
  c3 = h
  c4 = ((h//3+1)*w)-((h-1-h//3)*(w//2))
  c5 = ((h-h//3)*(w-w//2))-(h//3*w)
  ans = min(c1,c2,c3,c4,c5)
print(ans)
```