#include <bits/stdc++.h>
using namespace std;
const int MAXN = 101;
const int MOD = 1000000007;
long long DP[MAXN][MAXN];
int main(int argc, char* argv[]) {
  ios_base::sync_with_stdio(0);
  int n, k, d;
  cin >> n >> k >> d;
  DP[0][0] = 1;
  for (int s = 1; s <= n; s++) {
    for (int c = 1; c <= k; c++) {
      for (int i = 0; i <= k; i++) {
        if (s - c >= 0)
          DP[s][max(i, c)] = (DP[s][max(i, c)] + DP[s - c][i]) % MOD;
      }
    }
  }
  long long res = 0;
  for (size_t i = d; i <= k; i++) res = (res + DP[n][i]) % MOD;
  cout << res << endl;
  return 0;
}
