#include <bits/stdc++.h>
const long long MOD = 1e9 + 7;
using namespace std;
long long mmul(long long a, long long b) {
  long long ret = 0;
  while (b) {
    if (b & 1) ret = (ret + a) % MOD;
    a = (a + a) % MOD;
    b >>= 1;
  }
  return ret;
}
inline long long mul(long long a, long long b) {
  return a % MOD * (b % MOD) % MOD;
}
long long k;
long long modpow(long long a, long long b) {
  long long ret = 1;
  while (b) {
    if (b & 1) ret = ret * a % MOD;
    a = a * a % MOD;
    b >>= 1;
  }
  return ret;
}
long long calc(long long n, long long m) {
  long long la = 1;
  long long res = 0;
  for (long long i = la; i <= n && i <= m; i = la + 1) {
    la = n / (n / i);
    if (la > m) la = m;
    res = (res + mul(n / i, mul(i + la, la - i + 1)) * k % MOD) % MOD;
  }
  return res;
}
int main() {
  k = modpow(2, MOD - 2);
  long long n, m;
  while (cin >> n >> m) {
    long long res = mul(n, m);
    long long T = calc(n, m);
    cout << (res - T + MOD) % MOD << endl;
  }
  return 0;
}
