#include<cstdio> #define MOD 19940417 #define min(x,y)((x)<(y)?(x):(y)) usingnamespace std; longlong inv6 = 3323403, ans, n, m; longlongget(longlong to, longlong y) { longlong l, r, sum = 0; for (l = 1; l <= to; l = r + 1) r = min(y / (y / l), to), sum = (sum + (l + r) * (r - l + 1) / 2 % MOD * (y / l) % MOD) % MOD; return sum; } intmain() { scanf("%lld%lld", &n, &m); longlong a = get(n, n), b = get(m, m), t = min(n, m); ans = (n * n % MOD * m % MOD * m % MOD + a * b % MOD) % MOD; ans = (ans - m * m % MOD * a % MOD - n * n % MOD * b % MOD) % MOD; ans = (ans + n * get(t, m) % MOD - n * m % MOD * t % MOD) % MOD; ans = (ans + m * get(t, n) % MOD) % MOD; for (longlong l = 1, r; l <= t; l = r + 1) { r = min(n / (n / l), m / (m / l)); longlong t1 = r * (r + 1) % MOD * (2 * r + 1) % MOD * inv6 % MOD; longlong t2 = l * (l - 1) % MOD * (2 * l - 1) % MOD * inv6 % MOD; ans = (ans - (n / l) * (m / l) % MOD * (t1 - t2) % MOD) % MOD; } printf("%lld", (ans + MOD) % MOD); }