#include <bits/stdc++.h>
using namespace std;
int dp[105][10005];
int mod = 1e9 + 7;
int c[105];
int Pow(int x, long long n) {
  int ans = 1;
  while (n) {
    if (n & 1) {
      ans = 1LL * ans * x % mod;
    }
    n >>= 1;
    x = 1LL * x * x % mod;
  }
  return ans;
}
void init(int n) {
  int fac[205];
  fac[0] = 1;
  for (int i = 1; i < 205; i++) {
    fac[i] = 1LL * i * fac[i - 1] % mod;
  }
  for (int i = 0; i <= n; i++) {
    c[i] = 1LL * fac[n] * Pow(1LL * fac[i] * fac[n - i] % mod, mod - 2) % mod;
  }
}
int main() {
  int n, x;
  long long m;
  scanf("%d%lld%d", &n, &m, &x);
  init(n);
  int MAX = min(n, x);
  dp[0][0] = 1;
  for (int i = 1; i <= n; i++) {
    for (int k = MAX; k >= 0; k--) {
      int tmp = Pow(c[k], m / n + ((m % n) >= i));
      for (int j = x; j >= k; j--) {
        dp[i][j] = (dp[i][j] + 1LL * dp[i - 1][j - k] * tmp % mod) % mod;
      }
    }
  }
  printf("%d\n", dp[n][x]);
}
