#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; #include using namespace atcoder; using mint = modint998244353; #define rep(i, n) for (ll i = 0; i < n; i++) #define ALL(a) (a).begin(), (a).end() int main() { int n, m; scanf("%d %d", &n, &m); mint ans0 = 0, ans1 = 0; mint jsum = 0; for (int j = 1; j <= m; j++) { const ll nr = n % j; jsum += j - 1; ans0 += n / j * jsum; ans1 += nr * (nr + 1); } ans0 += ans1 / 2; printf("%d\n", ans0.val()); return 0; }