#include using namespace std; const long long MOD = 998244353; vector>> quotient_ranges(long long N){ vector>> ans; for (long long i = 1; i * i <= N; i++){ ans.push_back(make_pair(N / i, make_pair(i, i))); } for (long long i = N / ((long long) sqrt(N) + 1); i >= 1; i--){ ans.push_back(make_pair(i, make_pair(N / (i + 1) + 1, N / i))); } return ans; } long long ap(long long l, long long r){ return (r + l) * (r - l + 1) / 2 % MOD; } int main(){ int n, m; cin >> n >> m; vector>> Q = quotient_ranges(n); int cnt = Q.size(); long long ans = 0; for (int i = 0; i < cnt; i++){ long long q = Q[i].first; int l = Q[i].second.first; int r = Q[i].second.second; r = min(r, m); if (l > r){ break; } ans += (q * (q + 1) / 2 + q) % MOD * ap(l, r) % MOD; } ans %= MOD; cout << ans << endl; }