#include <bits/stdc++.h>
const long long Mod = 1000000007;
using namespace std;
int N, K;
long long M;
long long F[110][10010] = {{0}};
long long fact[110] = {0};
long long inv[110] = {0};
long long power(long long a, long long k) {
  long long o = 1;
  for (; k > 0; k >>= 1) {
    if (k & 1) o = o * a % Mod;
    a = a * a % Mod;
  }
  return o;
}
int main() {
  cin >> N >> M >> K;
  fact[0] = inv[0] = 1;
  for (int i = 1; i <= N; i++) {
    fact[i] = fact[i - 1] * i % Mod;
    inv[i] = inv[i - 1] * power(i, Mod - 2) % Mod;
  }
  F[0][0] = 1;
  for (int i = 1; i <= N; i++) {
    for (int p = 0; p <= N; p++) {
      long long mult = power((fact[N] * inv[p] % Mod * inv[(N) - (p)] % Mod),
                             M / N + (M % N >= i));
      for (int j = 0; j <= K - p; j++) {
        F[i][j + p] = (F[i][j + p] + F[i - 1][j] * mult % Mod) % Mod;
      }
    }
  }
  cout << F[N][K] << endl;
  return 0;
}
