#include #include constexpr int MOD = 998244353; int main() { int N, K; std::cin >> N >> K; std::vector dp(N + 1, 0); std::vector sum_dp(N + 1, 0); dp[0] = 1; // 初期状態 sum_dp[0] = 1; // 累積和の初期状態 for(int i = 1; i <= N; ++i) { if(i >= K) { dp[i] = sum_dp[i - K]; // K 以上増加させる } sum_dp[i] = (sum_dp[i - 1] + dp[i]) % MOD; // 累積和の更新 } int result = 0; for(int i = 0; i <= N; ++i) { result = (result + dp[i]) % MOD; } std::cout << result << std::endl; return 0; }