M = 1000_000_007 T = gets.to_i a, b, c, d, e = gets.split.map(&:to_i) MOVE = [a, -a, b, -b, c, -c] (1 .. T).inject({0 => 1}) do |prev, _| prev.each_with_object(Hash.new(0)) do |(k,v), dp| MOVE.each do |m| dp[k + m] += v dp[k + m] %= M if dp[k + m] > M end end end.tap do |dp| answer = (d .. e).inject(0) do |sum, k| (sum + dp[k]) % M end puts answer end