#include<iostream>
#include<atcoder/modint>
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<j<=r -> 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<<ans.val()<<endl;
}