#include <cstdlib>
#include <cstdio>
#include <cmath>

const int MODUO = 1000000007;

long long n, m, sol, tmp1, tmp2;

int main() {

	scanf("%d%d", &n, &m);
	if (m < n) {
		long long tmp = m; m = n; n = tmp;
	}

	sol = 0;

	tmp1 = ((n + 1) * (m + 1)) % MODUO;
	tmp2 = (n * (n + 1) / 2) % MODUO;
	sol = (sol + tmp1 * tmp2) % MODUO;

	sol = (sol + tmp2 * tmp2) % MODUO;

	tmp1 = ((n + m + 2) * (2 * n + 1)) % MODUO;
	tmp1 = (tmp1 * tmp2) % MODUO;
	sol = (sol - tmp1 * 333333336) % MODUO;
	// ovo je umesto deljenja sa 3 jer je 333333336 inverz za 1/3
	// u polju Z_p, gde je p = 10^9 + 7 (prost broj)

	//bitno
	if (sol < 0) sol += MODUO;

	printf("%d\n", sol);
	return 0;
}