#include <bits/stdc++.h>
using namespace std;
const long long int mx = 1e6 + 1, Mod = 1e9 + 7;
long long int n, m, sq;
long long int pw(long long int a, long long int b) {
  long long int res = 1;
  a %= Mod;
  while (b) {
    if (b & 1) res = res * a % Mod;
    a = a * a % Mod;
    b >>= 1;
  }
  return res;
}
long long int M2;
long long int get(long long int l, long long int r) {
  if (l > r) return 0;
  return 1LL * ((r + l) % Mod) * ((r - l + 1) % Mod) % Mod * M2 % Mod;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  M2 = pw(2, Mod - 2);
  cin >> n >> m;
  sq = sqrt(n);
  long long int OK = 0;
  if (m > n) OK = m - n, m = n;
  long long int res = 0;
  for (int i = 1; i <= sq && i <= m; i++) res += (n / i) * i, res %= Mod;
  if (m > sq) {
    long long int u, d;
    for (int i = 1; i < n / sq; i++) {
      d = n / (i + 1) + 1;
      u = min(n / i, m);
      res += i * get(d, u);
      res %= Mod;
    }
  }
  res = (n % Mod) * (m % Mod) % Mod - res;
  res %= Mod;
  res += Mod;
  res %= Mod;
  if (OK) {
    res += (OK % Mod) * (n % Mod);
    res %= Mod;
  }
  cout << res << '\n';
  return 0;
}
