#include using ll = std::int64_t; int main(){ std::cin.tie(nullptr); std::ios::sync_with_stdio(false); int N, M; std::cin >> N >> M; int L = std::max(N, M); std::vector spf(L + 1, 0), primes; for(int i=2;i<=L;i++){ if(spf[i] == 0){ spf[i] = i; primes.emplace_back(i); } for(int p : primes){ if(p > spf[i] || !(i <= M / p)){break;} spf[i * p] = p; } } ll res = 0; ll now = 0; for(int i=1;i<=N;i++){ std::vector> factors; { int x = i; while(x > 1){ int p = spf[x]; int t = 0; while(x % p == 0){ x /= p; t += 1; } factors.emplace_back(p, t); } } std::vector divisors{1}; for(auto &[p, t] : factors){ int l = divisors.size(); divisors.resize(l * (t + 1)); for(int i=l;i