#include <bits/stdc++.h>
using namespace std;
int C[102][102];
const int MOD = 1000000007;
int dp[60][60][60][110];
int main() {
  C[0][0] = 1;
  for (int i = 0; i < 100; i++) {
    for (int j = 0; j <= i; j++) {
      if (C[i][j] > 100) C[i][j] = 101;
      C[i + 1][j] += C[i][j];
      C[i + 1][j + 1] += C[i][j];
    }
  }
  int n, m, k;
  cin >> n >> m >> k;
  n /= 2;
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    dp[i][2][i][1] = 1;
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 2; j <= m && j <= n + 1; j++) {
      for (int u = 1; u <= i; u++) {
        for (int v = 1; v <= k; v++) {
          ans += (m - j + 1) * dp[i][j][u][v];
          ans %= MOD;
          for (int z = 1; z <= n - i; z++) {
            if (v * C[u + z - 1][u - 1] <= k) {
              dp[i + z][j + 1][z][v * C[u + z - 1][u - 1]] += dp[i][j][u][v];
              dp[i + z][j + 1][z][v * C[u + z - 1][u - 1]] %= MOD;
            }
          }
        }
      }
    }
  }
  cout << ans << endl;
}
