#include <bits/stdc++.h>   using namespace std;   const long long MOD = 1e9 + 7;   long long f[107][10007], C[107][10007];   long long ksm(long long a, long long b) {     long long res = 1;     for (; b; b >>= 1) {       if (b & 1) res = res * a % MOD;       a = a * a % MOD;     }     return res;   }   int main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.precision(6);     cout << fixed;     long long n, m, K;     cin >> n >> m >> K;     for (int i = 0; i <= n; i++) {       C[i][0] = 1;       for (int j = 1; j <= i; j++) {         C[i][j] = C[i - 1][j - 1] + C[i - 1][j];         C[i][j] %= MOD;       }     }     f[0][0] = 1;     for (int i = 1; i <= n; i++) {       for (int j = 0; j <= min(n, K); j++) {         long long res = ksm(C[n][j], (m - i) / n + 1);         for (int k = 0; k <= K - j; k++) {           f[i][j + k] += f[i - 1][k] * res;           f[i][j + k] %= MOD;         }       }     }     cout << f[n][K] << endl;     return 0;   }   