#define _GLIBCXX_DEBUG #include <bits/stdc++.h> #include <atcoder/fenwicktree> using namespace atcoder; using namespace std; typedef long long ll; typedef pair<ll,ll> pi; #define ALL(x) x.begin(),x.end() #define rep(i,a,b) for(int i=a;i<b;i++) using vi = vector<int>; using vvi = vector<vi>; using li =vector<ll>; using lli=vector<li>; using si =vector<char>; using ssi =vector<si>; const long long INF = 1e18; const long long MOD=998244353; //for (auto [key, val] : mp) int main() { ll n,k;cin>>n>>k; fenwick_tree<ll>bit(n+1); li dp(n+1); bit.add(0,1); dp[0]=1; rep(i,0,n){ if(i+1-k<0)continue; else{ dp[i+1]=bit.sum(0,i+2-k)%998244353; bit.add(i+1,dp[i+1]); } } cout<<bit.sum(0,n+1)%998244353; }