#include <bits/stdc++.h>
using namespace std;
const int INF = 1 << 29;
const double PI = acos(-1);
const double EPS = 1e-8;
long long powmod(long long base, long long power, int mod) {
  long long ans = 1;
  while (power > 0) {
    if (power & 1) ans = ans * base % mod;
    power >>= 1;
    base = base * base % mod;
  }
  return ans;
}
const int NUM = 120;
long long combi[NUM][NUM];
void calcCombi(long long mod) {
  combi[0][0] = 1;
  for (int i = 0; i < (int)NUM - 1; ++i) {
    combi[i][0] = combi[i][i] = 1;
    for (int j = 0; j < (int)i; ++j)
      combi[i + 1][j + 1] = (combi[i][j] + combi[i][j + 1]) % mod;
  }
}
long long pm[101][101];
long long dp[101][10001];
const long long mod = 1e9 + 7;
int main() {
  calcCombi(mod);
  long long n, m, k;
  cin >> n >> m >> k;
  for (int i = 0; i < (int)n; ++i)
    for (int l = 0; l < (int)n + 1; ++l) {
      pm[i][l] = powmod(combi[n][l], m / n + (i < m % n), mod);
    }
  dp[0][0] = 1;
  for (int i = 0; i < (int)n; ++i) {
    for (int j = 0; j < (int)k + 1; ++j) {
      for (int l = 0; l < (int)n + 1; ++l) {
        if (j + l > k) break;
        dp[i + 1][j + l] = (dp[i + 1][j + l] + dp[i][j] * pm[i][l]) % mod;
      }
    }
  }
  cout << dp[n][k] << endl;
}
