class Eratosthenes: def __init__(self, n): self.isPrime = [True]*(n+1) self.isPrime[0], self.isPrime[1] = False, False self.mobius = [1]*(n+1) for i in range(2, n+1): if self.isPrime[i]: self.mobius[i] = -1 for j in range(i*2, n+1, i): self.isPrime[j] = False if j//i%i == 0: self.mobius[j] = 0 else: self.mobius[j] *= -1 MOD = 998244353 half = pow(2, -1, MOD) def rangeSUM(l, r, c): return (l+r)%MOD*c%MOD*half%MOD N, M = map(int, input().split()) MIN = min(N, M) E = Eratosthenes(MIN) ans = 0 for n in range(1, MIN+1): ans += rangeSUM(n, N//n*n, N//n)*rangeSUM(n, M//n*n, M//n)%MOD*E.mobius[n] ans %= MOD print(ans)