#include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) templatebool chmax(T &x, T y){if(x>=y)return false;x=y;return true;} templatebool chmin(T &x, T y){if(x<=y)return false;x=y;return true;} const long long mod = 10007; long long modpow(long long n, long long r){ long long ans = 1; while(r){ if(r%2)ans = ans * n % mod; n = n * n % mod; r /= 2; } return ans; } long long inverse(long long n){ return modpow(n, mod-2); } int main(){ int K, N, S; cin >> K >> S >> N; vector v(K+1); v[0] = v[1] = 1; for(int i = 2; i < K+1; i++)v[i] = (v[i-1]+v[i-2])%mod; rep(i, K+1)v[i] = inverse(v[i]); map m; m[1] = S; for(int i = 1; i < N; i++){ rep(j, K+1){ m[i+1] = (m[i+1]+m[i-j]*v[j])%mod; } } cout << m[N] << endl; }