func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, k, dp[103][10003], C[103][103];   long long m;   int Plus(int x, int y) { return (x += y) >= 1000000007 ? x % 1000000007 : x; }   int mul(long long x, int y) {     return (x *= y) >= 1000000007 ? x % 1000000007 : x;   }   int qpow(int x, long long y) {     int ans = 1;     while (y) {       if (y & 1) ans = mul(ans, x);       x = mul(x, x);       y >>= 1;     }     return ans;   }   int main() {     C[1][0] = C[1][1] = 1;     for (int i = 2; i <= 100; i++) {       C[i][0] = 1;       for (int j = 1; j <= i; j++) {         C[i][j] = Plus(C[i - 1][j], C[i - 1][j - 1]);       }     }     cin >> n >> m >> k;     long long T = (m - 1) / n;     dp[0][0] = 1;     for (int i = 1; i <= n; i++) {       for (int l = 0; l <= min(n, k); l++) {         int syk = qpow(C[n][l], T + (T * n + i <= m));         for (int j = l; j <= k; j++) {           dp[i][j] = Plus(dp[i][j], mul(dp[i - 1][j - l], syk));         }       }     }     cout << dp[n][k] << endl;     return 0;   }   