#include #define f(a,b,c) for(int a = b;a < c; a++) #define max(a,b) (a) > (b) ? (a) : (b) #define min(a,b) (a) < (b) ? (a) : (b) std::map,int> d; int next(int n, int k){ if(d.count({n,k}) != 0){ return d[{n,k}]; } if(n <= 0){ return 1; } int ans = 1; f(i,k,n+1){ ans += next(n-i,k)%998244353; } d[{n,k}] = ans; return ans; } int main(){ int n,k; std::cin >> n >> k; std::cout << next(n,k); }