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