#include using namespace std; #define pb emplace_back #define mp make_pair using ll = long long; using pii = pair; constexpr int mod = 998244353; constexpr int inf = 0x3f3f3f3f; constexpr int N = 2e5 + 10; ll n, m, inv; ll pow_mod(ll x, ll p){ ll s = 1; while(p){ if(p & 1) s = s * x % mod; x = x * x % mod; p >>= 1; } return s; } ll mul(ll x, ll y){ return (x % mod) * (y % mod) % mod; } ll sum(ll l, ll r){ return mul(l + r, r - l + 1) * inv % mod; } void _main(){ inv = pow_mod(2, mod - 2); cin >> n >> m; ll ans = 0; if(n > m){ ans = mul(m, n - m); } ll lim = min(n, m); for(ll i=1; i<=lim; ){ ll p = m / i; ll r = min(lim, m / p); ans += mul(r - i + 1, m) - mul(sum(i, r), p); i = r + 1; } ans = (ans % mod + mod) % mod; cout << ans << '\n'; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); _main(); return 0; }