座標平面上の原点$O$を左下、座標$(W,H)$にある点を右上とする長方形の領域が与えられています。この領域に含まれる、$x$座標と$y$座標がともに整数である点を3個以上含む点の集まりを考えます。このような点の集まりのすべての組み合わせの個数を$N$とし、点の集まりのそれぞれを$D_1, D_2, ..., D_N$で表したとき、$D_1, D_2, ..., D_N$のそれぞれに含まれる点を頂点とする三角形を考えます。
たとえば、図のように$W=H=1$のとき、点$O(0,0)$、$A(1,0)$、$B(1,1)$、$C(0,1)$のうち、3個以上含む点の集まりは$\{O,A,B\}$、$\{O,A,C\}$、$\{O,B,C\}$、$\{A,B,C\}$、$\{O,A,B,C\}$の5つです。この例の場合、点の集まりのそれぞれに含まれる三角形は次のようになります。
この例からわかるように、同じ三角形が2つ以上の点の集まりに含まれる場合があります。たとえば、三角形$OAB$は点の集まり$\{O,A,B\}$にも$\{O,A,B,C\}$にも含まれます。
$W$と$H$が与えられる。点の集まり$D_1, D_2, ..., D_N$それぞれに含まれる点を頂点とする三角形の個数を$t_1, t_2, ..., t_N$とするとき、三角形の個数の和$t_1+t_2+...+t_N$を計算するプログラムを作成せよ。
入力は以下の形式で与えられる。
$W$ $H$
1行に$W$と$H$ ($1 \leq W,H \leq 1,000$)が与えられる。
それぞれの点の集まりに含まれる三角形の個数の和を1,000,000,007で割った余りを1行に出力する。
1 1
8
1 2
144
100 100
879128399