output_description: Print the number of different strings that x can be after Snuke finishes doing
  operations, modulo (10^9+7).
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N A B
attempt: S = list(input())
  N = int(input())
  
  """
  ordの位置
  #z = 122
  #a = 97
  左の文字からNで'a'に出来るかを確認
  aに出来るならaにして使った分をNから引く
  繰り返して行き一番最後にあまりをすべて使う"""
  
  for i, s in enumerate(S):
      if ord(s) - 97 > 0 and 122 - ord(s) < N:
          S[i] = "a"
          N -= 123 - ord(s)
  else:
      S[i] = chr((ord(S[i]) + N) % 122)
  
  
  print("".join(S))
  
problem_description: Statement
  
  Snuke has a string x of length N. Initially, every character in x is `0`.
  
  Snuke can do the following two operations any number of times in any order:
  
    * Choose A consecutive characters in x and replace each of them with `0`.
    * Choose B consecutive characters in x and replace each of them with `1`.
  
  Find the number of different strings that x can be after Snuke finishes doing
  operations. This count can be enormous, so compute it modulo (10^9+7).
samples: [{"input": "4 2 3", "output": "11\n    \n\nFor example, x can be `0011` or `1111` in the end, but cannot be `0110`.\n\n* * *"}, {"input": "10 7 2", "output": "533\n    \n\n* * *"}, {"input": "1000 100 10", "output": "828178524"}]