#include using namespace std; using ll = long long; constexpr ll mod = 998244353, inv2 = (mod + 1) / 2; int main() { int N, M; cin >> N >> M; if(N > M) swap(N, M); vector spf(N + 1, -1), mu(N + 1, 1); for(int i = 2; i <= N; ++i) { if(spf[i] == -1) for(int j = i; j <= N; j += i) if(spf[j] == -1) spf[j] = i; mu[i] = (i / spf[i] % spf[i] ? -mu[i / spf[i]] : 0); } ll ans = 0; for(ll d = 1; d <= N; ++d) { const ll x = N / d, y = M / d; ans += x * (x + 1) / 2 % mod * y % mod * (y + 1) % mod * inv2 % mod * d % mod * d % mod * mu[d]; if(ans < 0) ans += mod; if(ans >= mod) ans -= mod; } cout << ans << endl; }