#include #include using namespace std; using mint=atcoder::modint998244353; int N,M; const mint inv2=mint(1)/2,inv6=mint(1)/6; mint f1(int n){return mint(n)*(n+1)*inv2;} mint f2(int n){return mint(n)*(n+1)*(2*n+1)*inv6;} main() { cin>>N>>M; int r=M; mint ans=0; while(r>=1) { int q=N/r; int l=N/(q+1); //l N/j=q //q*((j**2-j)/2)+((N-q*j)**2+(N-q*j))/2 ans+=q*((f2(r)-f2(l))-(f1(r)-f1(l)))*inv2; ans+=mint(r-l)*N*(N+1)*inv2; ans-=(mint(2)*N*q+q)*(f1(r)-f1(l))*inv2; ans+=mint(q)*q*(f2(r)-f2(l))*inv2; r=l; } cout<