#include using ll = std::int64_t; using T = std::tuple; using Matrix = std::vector>; const ll MOD = 998244353; Matrix matPow(Matrix A, int n){ auto d = A.size(); Matrix R(d, std::vector(d, 0)); for(int i=0;i 0){ if(n & 1){ Matrix M(d, std::vector(d, 0)); for(int i=0;i= MOD){M[i][j] -= MOD;} } } } R = std::move(M); } Matrix M(d, std::vector(d, 0)); for(int i=0;i= MOD){M[i][j] -= MOD;} } } } A = std::move(M); n /= 2; } return R; } int main(){ std::cin.tie(nullptr); std::ios::sync_with_stdio(false); int N, M, K; std::cin >> N >> M >> K; std::vector Q, L, R; { int q = 1; int l = M / (q + 1); int r = M / q; while(true){ Q.emplace_back(q); L.emplace_back(l); R.emplace_back(r); if(q == M){break;} q = M / l; l = M / (q + 1); r = M / q; } } Matrix T(Q.size(), std::vector(Q.size(), 0ll)); for(int i=0;i= MOD){res -= MOD;} } } std::cout << res << std::endl; }