#include using namespace std; #ifdef LOCAL #include "settings/debug.cpp" #else #define Debug(...) void(0) #endif #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; #include #include using mint = atcoder::modint1000000007; int main() { cin.tie(nullptr)->sync_with_stdio(false); int n, l; cin >> n >> l; atcoder::fenwick_tree dp(n + 1); dp.add(0, 1); for (int i = 1; i <= n; ++i) { dp.add(i, dp.sum(max(0, i - l), i)); } cout << dp.sum(n, n + 1).val() << '\n'; return 0; }