output_description: Print the number of ways to climb up the stairs under the condition, modulo 1\
  000\ 000\ 007.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N M
      a_1
      a_2
       .
       .
       .
      a_M
attempt: class MyClass:
      patternCount = 0
  
      def skip(self, maxNum, currentIndex):
          if currentIndex >= maxNum or currentIndex in brokenIndexList:
              return
  
          if maxNum - 1 == currentIndex:
              self.patternCount += 1
              return
  
          self.skip(maxNum, currentIndex + 1)
          self.skip(maxNum, currentIndex + 2)
  
  
  maxNum, brokenCount = map(int, input().split())
  
  brokenIndexList = []
  for i in range(brokenCount):
      brokenIndexList.append(int(input()))
  
  if maxNum == 0:
      print(0)
  
  c = MyClass()
  c.skip(maxNum, -1)
  
  print(c.patternCount)
  
problem_description: Statement
  
  There is a staircase with N steps. Takahashi is now standing at the foot of
  the stairs, that is, on the 0-th step. He can climb up one or two steps at a
  time.
  
  However, the treads of the a_1-th, a_2-th, a_3-th, \ldots, a_M-th steps are
  broken, so it is dangerous to set foot on those steps.
  
  How many are there to climb up to the top step, that is, the N-th step,
  without setting foot on the broken steps? Find the count modulo 1\ 000\ 000\
  007.
samples: [{"input": "6 1\n    3", "output": "4\n    \n\nThere are four ways to climb up the stairs, as follows:\n\n  * 0 \\to 1 \\to 2 \\to 4 \\to 5 \\to 6\n  * 0 \\to 1 \\to 2 \\to 4 \\to 6\n  * 0 \\to 2 \\to 4 \\to 5 \\to 6\n  * 0 \\to 2 \\to 4 \\to 6\n\n* * *"}, {"input": "10 2\n    4\n    5", "output": "0\n    \n\nThere may be no way to climb up the stairs without setting foot on the broken\nsteps.\n\n* * *"}, {"input": "100 5\n    1\n    23\n    45\n    67\n    89", "output": "608200469\n    \n\nBe sure to print the count modulo 1\\ 000\\ 000\\ 007."}]