#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; using namespace atcoder; typedef long long ll; typedef pair P; using mint=modint998244353; int main() { ll n, m; cin>>n>>m; vector v; for(ll x=1; (x-1)*(x-1)<=n; x++){ v.push_back(x); v.push_back(n/x); } sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end()); mint ans=0; mint inv2=mint(2).inv(); auto calc=[&](ll r){ return mint(r)*mint(r+1)*inv2; }; for(auto x:v){ ll r=min(n/x, m); if(n/(x+1)+1>r) continue; ans+=(mint(x)+calc(x))*(calc(r)-calc(n/(x+1))); } cout<