#include <bits/stdc++.h>
const long long mod = 1e9 + 7;
long long Sum(long long a, long long b) {
  long long n = (b - a + 1);
  b -= a;
  long long ret = (n % mod) * (a % mod), b1 = b, b2 = b + 1ll;
  ret %= mod;
  if (b1 % 2ll == 0)
    b1 /= 2ll;
  else
    b2 /= 2ll;
  ret += (b1 % mod) * (b2 % mod);
  ret %= mod;
  return ret;
}
int main() {
  long long N, M, ans = 0, x = 1;
  scanf("%I64d %I64d", &N, &M);
  if (M > N) {
    ans += (N % mod) * ((M - N) % mod);
    ans %= mod;
    M = N;
  }
  while (x <= M) {
    long long k = N / x;
    long long y = N / k;
    if (y > M) y = M;
    ans += (N % mod) * ((y - x + 1) % mod);
    ans %= mod;
    ans -= Sum(x, y) * (k % mod);
    if (ans < 0) ans += mod * mod;
    ans %= mod;
    x = y + 1;
  }
  printf("%I64d\n", ans);
  return 0;
}
