#include #include #define rep(i, n) for(i = 0; i < n; i++) using namespace std; int powmod(int a, int n, int mod) { if (n == 0) return 1 % mod; if (n % 2 == 0) return powmod(a * a % mod, n / 2, mod); return powmod(a, n - 1, mod) * a % mod; } int main() { int mod = 10007; int k, s, n; cin >> k >> s >> n; int i, j; vector fib(n + 1); vector fibInv(n + 1); fib[0] = 1; fib[1] = 1; fibInv[0] = fibInv[1] = 1; for (i = 2; i <= n; i++) { fib[i] = (fib[i - 1] + fib[i - 2]) % mod; fibInv[i] = powmod(fib[i], mod - 2, mod); } vector a(n + 1); a[0] = 0; a[1] = s; for (i = 2; i <= n; i++) { for (j = 1; j <= k + 1; j++) { if (i - j <= 0) continue; a[i] += a[i - j] * fibInv[j - 1] % mod; a[i] %= mod; } } cout << a[n] << endl; return 0; }