#include using namespace std; #include using namespace atcoder; using mint = modint998244353; 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); } auto f = [](int x) { return mint(x) * (x + 1) / 2; }; mint ans = 0; for(int d = 1; d <= N; ++d) ans += mint(mu[d]) * d * d * f(N / d) * f(M / d); cout << ans.val() << endl; }