n,m = map(int,input().split())
a = [int(input()) for i in range(m)]
a.append(1000000)
dp = [0]*(n+1)
dp[0] = 1
j = 0
if a[j] == 1:
    j += 1
else:
    dp[1] = 1

for i in range(2,n+1):
    if i == a[j]:
        j += 1
    else:
        dp[i] = (dp[i-1] + dp[i-2]) % 1000000007
#print(dp)
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 i in range(m) for i in range(m) i range(m) range m for i in range(m) int(input()) int input() input a = [int(input()) for i in range(m)] a [int(input()) for i in range(m)] a.append(1000000) a.append a append 1000000 dp = [0]*(n+1) dp [0]*(n+1) [0] 0 n+1 n 1 dp[0] = 1 dp[0] dp 0 1 j = 0 j 0 if a[j] == 1:
    j += 1
else:
    dp[1] = 1 a[j] == 1 a[j] a j 1 j += 1 j 1 dp[1] = 1 dp[1] dp 1 1 for i in range(2,n+1):
    if i == a[j]:
        j += 1
    else:
        dp[i] = (dp[i-1] + dp[i-2]) % 1000000007
#print(dp) i range(2,n+1) range 2 n+1 n 1 if i == a[j]:
        j += 1
    else:
        dp[i] = (dp[i-1] + dp[i-2]) % 1000000007
#print(dp) i == a[j] i a[j] a j j += 1 j 1 dp[i] = (dp[i-1] + dp[i-2]) % 1000000007 dp[i] dp i (dp[i-1] + dp[i-2]) % 1000000007 dp[i-1] + dp[i-2] dp[i-1] dp i-1 i 1 dp[i-2] dp i-2 i 2 1000000007 print(dp[n]) print dp[n] dp n a = [int(input()) for i in range(m)] [int(input()) for i in range(m)] a dp = [0]*(n+1) [0]*(n+1) dp j += 1 1 j n,m = map(int,input().split()) map(int,input().split()) n m = map(int,input().split()) map(int,input().split()) m j = 0 0 j j += 1 1 j
n,m = map(int,input().split())
a = [int(input()) for i in range(m)]
a.append(1000000)
dp = [0]*(n+1)
dp[0] = 1
j = 0
if a[j] == 1:
    j += 1
else:
    dp[1] = 1

for i in range(2,n+1):
    if i == a[j]:
        j += 1
    else:
        dp[i] = (dp[i-1] + dp[i-2]) % 1000000007
#print(dp)
print(dp[n])