#include <bits/stdc++.h>
using namespace std;
int n, m, p, dp[2][110][110][110], ans;
const int mod = 1e9 + 7;
int main() {
  scanf("%d%d%d", &n, &m, &p);
  for (int i = 1; i <= n; i++) dp[0][i][i][1] = 1;
  for (int i = 0; i < m - 1; i++) {
    memset(dp[!(i & 1)], 0, sizeof(dp[!(i & 1)]));
    for (int j = 1; j <= n; j++)
      for (int k = 1; k <= j; k++)
        for (int s = 1; s <= p; s++)
          if (dp[i & 1][j][k][s]) {
            int ns = s;
            for (int k2 = k; k2 <= n - j; k2++) {
              if (k2 > k) ns *= (k2 - 1), ns /= (k2 - k);
              if (ns > p) break;
              (dp[!(i & 1)][j + k2][k2 - k][ns] += dp[i & 1][j][k][s]) %= mod;
            }
          }
    for (int j = 1; j <= n; j++)
      for (int s = 1; s <= p; s++)
        (ans += 1ll * (m - i - 1) * dp[!(i & 1)][j][0][s] % mod) %= mod;
  }
  return printf("%d", ans), 0;
}
