#include <bits/stdc++.h>
using namespace std;
template <class T>
T abs(T x) {
  return x > 0 ? x : -x;
}
const int mod = 1000000000 + 7;
int n;
long long m;
int k;
int res[101][10001];
int g[101][101];
int c[101][101];
int power(int a, long long b) {
  int c = 1;
  while (b) {
    if (b & 1) c = ((long long)c * a) % mod;
    b /= 2;
    a = ((long long)a * a) % mod;
  }
  return c;
}
int main() {
  for (int i = 0; i <= 100; i++)
    for (int j = 0; j <= i; j++)
      if (i == 0 || j % i == 0)
        c[i][j] = 1;
      else
        c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % mod;
  cin >> n >> m >> k;
  for (int i = 0; i < n; i++)
    for (int j = 0; j <= n; j++) g[i][j] = power(c[n][j], (m - i - 1) / n + 1);
  memset(res, 0, sizeof(res));
  res[0][0] = 1;
  for (int i = 0; i < n; i++)
    for (int j = 0; j <= i * n && j <= k; j++)
      for (int t = 0; t <= n && j + t <= k; t++)
        res[i + 1][j + t] =
            (res[i + 1][j + t] + (long long)res[i][j] * g[i][t]) % mod;
  printf("%d\n", res[n][k]);
  return 0;
}
