#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) {
    long long i, j, k, n, d, mod = 1000000007;
    cin >> n >> k >> d;
    long long dp[n + 1][2];
    memset(dp, 0, sizeof(dp));
    dp[0][0] = 1;
    for (i = 1; i <= n; i++) {
      for (j = 1; j <= k; j++) {
        if (j > i) break;
        if (j < d) dp[i][0] += dp[i - j][0];
        dp[i][0] %= mod;
        dp[i][1] += dp[i - j][1];
        if (j >= d) dp[i][1] += dp[i - j][0];
        dp[i][1] %= mod;
      }
    }
    cout << dp[n][1] % mod;
  }
}
