k,n,d=gets.split(" ").map{|e| e.to_i} k.times{|i| n-=d*i } if n<0 then puts 0 else m=10**9+7 dp=Array.new(n+1,0) dp[0]=1 (k-1).downto(1){|i| 0.upto(n-i){|p1| dp[p1+i]=(dp[p1+i]+dp[p1])%m } } ans=0 t=n while t>=0 do ans+=dp[t] t-=k end puts ans%m end