#include<bits/stdc++.h> usingnamespace std; #define int long long constint mod = 19940417; intfastpow(int a, int b) { int res = 1; while (b) { if (b & 1) { res = (res * a) % mod; } a = (a * a) % mod; b >>= 1; } return res; } intcalc(int x) { return (x * (x + 1) / 2) % mod; } intcalcc(int x) { return (((x * (x + 1)) % mod * (2 * x + 1)) % mod * 3323403) % mod; } signedmain() { int n, m; cin >> n >> m; if (n > m) { swap(n, m); } int ans1 = 0; for (int l = 1; l <= n; ) { int r = n / (n / l); int d = n / l; ans1 = (ans1 + mod + ((calc(r) - calc(l - 1)) * d) % mod) % mod; l = r + 1; } ans1 = (n * n % mod + mod - ans1) % mod; int ans2 = 0; for (int l = 1; l <= m; ) { int r = m / (m / l); int d = m / l; ans2 = (ans2 + mod + ((calc(r) - calc(l - 1)) * d) % mod) % mod; l = r + 1; } ans2 = (m * m % mod + mod - ans2) % mod; int ans = ans1 * ans2 % mod; int ans3 = 0; for (int l = 1; l <= n; ) { int r = min(n / (n / l), m / (m / l)); int d1 = n / l; int d2 = m / l; int b = ((calc(r) - calc(l - 1) + mod) % mod * (d1 * m % mod + d2 * n % mod)) % mod; int c = (((calcc(r) - calcc(l - 1) + mod) % mod * d1) % mod * d2) % mod; ans3 = (ans3 + (((r - l + 1) * n) % mod * m) % mod + mod - b + c) % mod; l = r + 1; } ans = (ans - ans3 + mod) % mod; cout << ans; return0; }