n, m = map(int, input().split())
stairs = [i for i in range(1, n+1)]
a = [0 for _ in range(m)]
for i in range(m):
  a[i] = int(input())
a = set(a)
  
dp = [0] * (n + 1)
dp[0] = 1

for i in range(1, n+1):
  if i in a:
    continue
  dp[i] = dp[i-1]
  if i > 1:
    dp[i] += dp[i-2]

print(dp[n] % 1000000007) n, m = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split m i for i in range(1, n+1) for i in range(1, n+1) i range(1, n+1) range 1 n+1 n 1 for i in range(1, n+1) i stairs = [i for i in range(1, n+1)] stairs [i for i in range(1, n+1)] 0 for _ in range(m) for _ in range(m) _ range(m) range m for _ in range(m) 0 a = [0 for _ in range(m)] a [0 for _ in range(m)] for i in range(m):
  a[i] = int(input()) i range(m) range m a[i] = int(input()) a[i] a i int(input()) int input() input a = set(a) a set(a) set a dp = [0] * (n + 1) dp [0] * (n + 1) [0] 0 n + 1 n 1 dp[0] = 1 dp[0] dp 0 1 for i in range(1, n+1):
  if i in a:
    continue
  dp[i] = dp[i-1]
  if i > 1:
    dp[i] += dp[i-2] i range(1, n+1) range 1 n+1 n 1 if i in a:
    continue
   i in a i a continue dp[i] = dp[i-1] dp[i] dp i dp[i-1] dp i-1 i 1 if i > 1:
    dp[i] += dp[i-2] i > 1 i 1 dp[i] += dp[i-2] dp[i] dp i dp[i-2] dp i-2 i 2 print(dp[n] % 1000000007) print dp[n] % 1000000007 dp[n] dp n 1000000007 a = [0 for _ in range(m)] [0 for _ in range(m)] a stairs = [i for i in range(1, n+1)] [i for i in range(1, n+1)] stairs m = map(int, input().split()) map(int, input().split()) m dp = [0] * (n + 1) [0] * (n + 1) dp n, m = map(int, input().split()) map(int, input().split()) n a = set(a) set(a) a
n, m = map(int, input().split())
stairs = [i for i in range(1, n+1)]
a = [0 for _ in range(m)]
for i in range(m):
  a[i] = int(input())
a = set(a)
  
dp = [0] * (n + 1)
dp[0] = 1

for i in range(1, n+1):
  if i in a:
    continue
  dp[i] = dp[i-1]
  if i > 1:
    dp[i] += dp[i-2]

print(dp[n] % 1000000007)