import sys, math sys.setrecursionlimit(10**8) sys.set_int_max_str_digits(0) INF = 1e18 MOD = 10007 from bisect import bisect_left, bisect_right from collections import deque, defaultdict, Counter from itertools import product, combinations, permutations, groupby, accumulate from heapq import heapify, heappop, heappush input = sys.stdin.readline def I(): return input().rstrip() def II(): return int(input().rstrip()) def IS(): return input().rstrip().split() def MII(): return map(int, input().rstrip().split()) def LI(): return list(input().rstrip()) def TII(): return tuple(map(int, input().rstrip().split())) def LII(): return list(map(int, input().rstrip().split())) def LSI(): return list(map(str, input().rstrip().split())) def GMI(): return list(map(lambda x: int(x) - 1, input().rstrip().split())) def kiriage(a, b): return (a+b-1)//b K, S, N = MII() fib = [1, 1] for i in range(K): fib.append(fib[-2] + fib[-1]) invfib = [] for i in range(K + 2): invfib.append(pow(fib[i], -1, MOD)) A = [0]*K A.append(S) for i in range(2, N + 1): memo = 0 for j in range(K + 1): memo += A[-1 -j] * invfib[j] memo %= MOD A.append(memo) print(A[-1])