codeforces#P220D. Little Elephant and Triangle
Little Elephant and Triangle
Description
The Little Elephant is playing with the Cartesian coordinates' system. Most of all he likes playing with integer points. The Little Elephant defines an integer point as a pair of integers (x; y), such that 0 ≤ x ≤ w and 0 ≤ y ≤ h. Thus, the Little Elephant knows only (w + 1)·(h + 1) distinct integer points.
The Little Elephant wants to paint a triangle with vertexes at integer points, the triangle's area must be a positive integer. For that, he needs to find the number of groups of three points that form such triangle. At that, the order of points in a group matters, that is, the group of three points (0;0), (0;2), (2;2) isn't equal to the group (0;2), (0;0), (2;2).
Help the Little Elephant to find the number of groups of three integer points that form a nondegenerate triangle with integer area.
A single line contains two integers w and h (1 ≤ w, h ≤ 4000).
In a single output line print an integer — the remainder of dividing the answer to the problem by 1000000007 (109 + 7).
Input
A single line contains two integers w and h (1 ≤ w, h ≤ 4000).
Output
In a single output line print an integer — the remainder of dividing the answer to the problem by 1000000007 (109 + 7).
Samples
2 1
36
2 2
240