Positive Area Triangles

Limits 2s, 512 MB

Given a grid with length X and height Y, we can select any lattice point ( lattice point = integer coordinates ) having coordinate (x,y) where 0 <= x <= X and 0 <= y <= Y.

In how many ways can we select 3 points such that the area of the triangle formed by the three points have positive area?

The order of the points does not matter, i.e, the selection of points in unordered.

Print the result modulo 10^9 + 7.

Input

Input contains two integers, X and Y.

0 <= X, Y <= 3000

Output

Print the number of unordered selection of 3 points that results in a triangle with positive area, modulo 10^9+7.

Sample

InputOutput
2 2
76