n, m = map(int, input().split())
a = [int(input()) for _ in range(m)]

mod = 10**9+7
a.append(float('INF'))
a = a[::-1]
dp = [0] * (n+1)
dp[0] = 1
if a[-1] != 1:
    dp[1] = 1
else:
    a.pop()
for i in range(2, n+1):
    if i == a[-1]:
        a.pop()
        continue
    dp[i] = dp[i-1] + dp[i-2]
    dp[i] %= mod
print(dp[n]) n, m = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split m int(input()) for _ in range(m) for _ in range(m) _ range(m) range m for _ in range(m) int(input()) int input() input a = [int(input()) for _ in range(m)] a [int(input()) for _ in range(m)] mod = 10**9+7 mod 10**9+7 10**9 10 9 7 a.append(float('INF')) a.append a append float('INF') float 'INF' a = a[::-1] a a[::-1] a ::-1 -1 dp = [0] * (n+1) dp [0] * (n+1) [0] 0 n+1 n 1 dp[0] = 1 dp[0] dp 0 1 if a[-1] != 1:
    dp[1] = 1
else:
    a.pop() a[-1] != 1 a[-1] a -1 1 dp[1] = 1 dp[1] dp 1 1 a.pop() a.pop a pop for i in range(2, n+1):
    if i == a[-1]:
        a.pop()
        continue
    dp[i] = dp[i-1] + dp[i-2]
    dp[i] %= mod i range(2, n+1) range 2 n+1 n 1 if i == a[-1]:
        a.pop()
        continue
     i == a[-1] i a[-1] a -1 a.pop() a.pop a pop continue dp[i] = dp[i-1] + dp[i-2] dp[i] dp i dp[i-1] + dp[i-2] dp[i-1] dp i-1 i 1 dp[i-2] dp i-2 i 2 dp[i] %= mod dp[i] dp i mod print(dp[n]) print dp[n] dp n a = [int(input()) for _ in range(m)] [int(input()) for _ in range(m)] a n, m = map(int, input().split()) map(int, input().split()) n dp = [0] * (n+1) [0] * (n+1) dp m = map(int, input().split()) map(int, input().split()) m mod = 10**9+7 10**9+7 mod a = a[::-1] a[::-1] a
n, m = map(int, input().split())
a = [int(input()) for _ in range(m)]

mod = 10**9+7
a.append(float('INF'))
a = a[::-1]
dp = [0] * (n+1)
dp[0] = 1
if a[-1] != 1:
    dp[1] = 1
else:
    a.pop()
for i in range(2, n+1):
    if i == a[-1]:
        a.pop()
        continue
    dp[i] = dp[i-1] + dp[i-2]
    dp[i] %= mod
print(dp[n])