K. The Fortress Defense
time limit per test
2 seconds
memory limit per test
512 megabytes
input
standard input
output
standard output

The Flatlanders are building a fortress on a grid of square cells. The fortress will have several contours of defense. Each contour is a rectangle with sides along the borders of the cells.

The first, outer, defense contour is a rectangle of size $$$h \times w$$$. Each next contour is strictly inside all previous ones. Defense contours should not have common points.

The level of cell defense is the number of defense contours inside which this cell lies. The defense level of a fortress is equal to the sum of the defense levels of all its cells. For example, the fortress defense level in the picture is $$$16 \cdot 1 + 8\cdot 2 + 3 = 35$$$.

The Flatlanders are interested in all possible ways to build a fortress. They calculate the defense level of the fortress for each possible way, then calculate the sum of values of all ways. You should help the Flatlanders to calculate this sum. The answer can be large, output its modulo $$$10^9 + 7$$$.

Input

In the first line of input there are two integers $$$h$$$ and $$$w$$$ ($$$1 \le h, w \le 400$$$).

Output

Output single integer: the sum of defense levels for all ways to build a fortress modulo $$$10^9 + 7$$$.

Examples
Input
3 3
Output
19
Input
5 5
Output
1060
Note

All possible ways to build a fortress from the first sample are in the picture.

All possible ways to build a fortress from the second sample are in the picture.