#include <bits/stdc++.h>
using namespace std;
ifstream fin("input");
void init() {
  cin.tie(NULL);
  ios_base::sync_with_stdio(false);
}
int n, k, d;
long long dp(int sum, int cnt) {
  long long d[101];
  memset(d, 0, sizeof(d));
  d[0] = 1;
  for (int i = 1; i <= sum; i++) {
    for (int p = 1; p <= min(i, cnt); p++) {
      d[i] = (d[i] + d[i - p]) % 1000000007;
    }
  }
  return d[sum];
}
void read() { cin >> n >> k >> d; }
void solve() {
  long long result = dp(n, k) - dp(n, d - 1);
  cout << (1000000007 + result) % 1000000007;
}
int main() {
  init();
  read();
  solve();
}
