#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
const int mod = 1e9 + 7;
ll n, m, k;
ll exppow(ll x, ll y) {
  ll res = 1;
  while (y) {
    if (y & 1) res = res * x % mod;
    x = x * x % mod;
    y >>= 1;
  }
  return res;
}
ll c[101][101];
ll dp[101][101 * 101];
void solve() {
  dp[0][0] = 1;
  for (int i = 1; i <= n; i++)
    for (int j = 0; j <= n; j++) {
      ll tmp = exppow(c[n][j], (m - i + n) / n);
      for (int p = 0; p <= k - j; p++)
        if (dp[i - 1][p])
          dp[i][j + p] = (dp[i][j + p] + dp[i - 1][p] * tmp % mod) % mod;
    }
}
int main() {
  cin >> n >> m >> k;
  for (int i = 0; i < 101; i++) {
    c[i][0] = 1;
    for (int j = 1; j <= i; j++)
      c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % mod;
  }
  solve();
  printf("%I64d", dp[n][k]);
}
