#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
using ll = long long;

constexpr int P = 1000000007;

int main() {
    int n, d, k;
    cin >> n >> d >> k;

    int dp[90001] = {};
    dp[0] = 1;

    for (int i = 0; i < n; i++) {
        ll t = 0;
        for (int j = k; j >= 0; j--) {
            if (j == k) {
                for (int h = max(j - d, 0); h < j; h++) {
                    t += dp[h];
                }
            } else {
                t -= dp[j];
                if (j - d >= 0) t += dp[j - d];
            }
            dp[j] = t % P;
            if (dp[j] < 0) dp[j] += P;
        }
    }

    cout << dp[k] << endl;

    return 0;
}