#include #define ll long long #define mod 1000000007LL using namespace std; int n, m, pcnt; ll ans, suma, sumb; int mu[3000009], prime[3000009]; bool notp[3000009]; int main() { scanf("%d %d", &n, &m); mu[1] = 1; for(int i = 2; i <= min(n, m); i++) { if(!notp[i]) mu[i] = -1, prime[++pcnt] = i; mu[i] = (mu[i] + mod) % mod; for(int j = 1; j <= pcnt && i * prime[j] <= min(n, m); j++) { notp[i * prime[j]] = true; mu[i * prime[j]] = -mu[i]; if(i % prime[j] == 0) { mu[i * prime[j]] = 0; break; } } } ans = ((ll)(n - 1) * m + (ll)(m - 1) * n) % mod; for(int i = 1; i <= min(n, m) - 1; i++) { suma = 0; for(int j = i; j < n; j += i) suma = (suma + n - j) % mod; sumb = 0; for(int j = i; j < m; j += i) sumb = (sumb + m - j) % mod; ans = ((((suma * sumb) % mod * mu[i]) % mod * 2) % mod + ans) % mod; } printf("%lld\n", ans); return 0; }