#include <bits/stdc++.h>
const int mod = 1000000007;
int gcd(int a, int b) {
  while (b) a %= b, std::swap(a, b);
  return a;
}
int w, h;
int gc[4020][4020];
int co[4020][4020];
int main() {
  scanf("%d %d", &w, &h);
  long long n = (w + 1) * (h + 1);
  long long tot = (((n * (n - 1)) % mod) * (n - 2)) % mod;
  long long cl = clock();
  for (int i = 1; i < 4010; ++i) {
    for (int j = 1; j < 4010; ++j) {
      if (i > j) {
        gc[i][j] = gc[j][i];
      } else {
        gc[i][j] = gcd(j, i);
      }
    }
  }
  memset(co, 0, sizeof(co));
  for (int i = 1; i < 4010; ++i) {
    for (int j = 1; j < 4010; ++j) {
      co[i][j] = gc[i][j] - 1 + co[i][j - 1] + co[i - 1][j] - co[i - 1][j - 1];
    }
  }
  for (int i = 0; i <= w; ++i) {
    for (int j = 0; j <= h; ++j) {
      long long li;
      li = co[i][j];
      li += co[w - i][j];
      li += (j) * (j - 1) / 2;
      li += (i) * (i - 1) / 2;
      if (li >= mod) {
        li %= mod;
      }
      tot = tot - 6LL * li;
      while (tot < 0) {
        tot += mod;
      }
      if (tot >= mod) {
        tot %= mod;
      }
      long long evi = i / 2 + (w - i) / 2;
      long long oddi = w - evi;
      long long evj = j / 2;
      long long oddj = j - evj;
      ++evi;
      long long oddf = 0;
      long long p;
      long long q;
      p = oddi * oddj;
      if (p >= mod) {
        p %= mod;
      }
      q = oddi * evj;
      if (q >= mod) {
        q %= mod;
      }
      oddf += p * q;
      q = oddj * evi;
      if (q >= mod) {
        q %= mod;
      }
      oddf += p * q;
      q = evj * evi;
      if (q >= mod) {
        q %= mod;
      }
      oddf += p * q;
      oddf *= 6;
      if (oddf >= mod) {
        oddf %= mod;
      }
      tot -= oddf;
      if (tot < 0) {
        tot += mod;
      }
      oddi = i - i / 2;
      p = oddi * oddj;
      if (p >= mod) {
        p %= mod;
      }
      q = p * 6LL * (w + 1);
      if (q >= mod) {
        q %= mod;
      }
      tot -= q;
      if (tot < 0) {
        tot += mod;
      }
      tot %= mod;
    }
  }
  printf("%lld\n", tot);
  return 0;
}
