#include <bits/stdc++.h>
using namespace std;
int mod = 1000000007;
int dp[55][105][105][105];
int C[105][105];
int main() {
  int n, m, k;
  scanf("%d%d%d", &n, &m, &k);
  int mm = m;
  for (int i = 0; i < 105; i++) {
    C[i][0] = C[i][i] = 1;
    for (int j = 1; j < i; j++) C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
  }
  n++;
  m = min(m, (n + 1) / 2);
  for (int i = 2; i <= n; i++) dp[1][i][i - 1][1] = 1;
  for (int mi = 1; mi < m; mi++)
    for (int i = 2; i <= n; i++)
      for (int j = 1; j <= i - 1; j++)
        for (int ki = 1; ki <= k; ki++) {
          if (dp[mi][i][j][ki] == 0) continue;
          for (int t = j; t + i <= n; t++) {
            if (ki * C[t - 1][j - 1] > k) break;
            dp[mi + 1][t + i][t - j][ki * C[t - 1][j - 1]] += dp[mi][i][j][ki];
            dp[mi + 1][t + i][t - j][ki * C[t - 1][j - 1]] %= mod;
          }
        }
  int ans = 0;
  for (int mi = 1; mi <= m; mi++)
    for (int i = 2; i <= n; i++)
      for (int ki = 1; ki <= k; ki++)
        ans += (long long)dp[mi][i][0][ki] * (mm - mi + 1), ans %= mod;
  printf("%d\n", ans);
}
