func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, k, d, mod = 1000000007;   long long dp[105][2];   long long go(int nw, bool gotit) {     if (nw == 0 && gotit) return 1;     if (nw <= 0) return 0;     if (dp[nw][gotit] != -1) return dp[nw][gotit];     long long ret = 0;     for (int i = 1; i <= k; i++) {       if (nw - i >= 0) {         ret += go(nw - i, (gotit | i >= d));       } else         break;       ret %= mod;     }     return dp[nw][gotit] = ret;   }   int main() {     memset(dp, -1, sizeof(dp));     cin >> n >> k >> d;     cout << go(n, 0) << endl;   }   