MOD=10**9+7
n,m = list(map(int, input().split()))
a = set([int(input()) for _ in range(m)])

dp = [0] * (n+1)

dp[0] = 1
dp[1] = int(1 not in a)
for step in range(2, n+1):
    if dp[step-1]==0 and dp[step-2]==0:
        break
    if step not in a:
        dp[step] = (dp[step-1] + dp[step-2])%MOD
    else:
        dp[step] = 0
        
print(dp[-1]) MOD=10**9+7 MOD 10**9+7 10**9 10 9 7 n,m = list(map(int, input().split())) n list(map(int, input().split())) list 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 = set([int(input()) for _ in range(m)]) a set([int(input()) for _ in range(m)]) set [int(input()) for _ in range(m)] dp = [0] * (n+1) dp [0] * (n+1) [0] 0 n+1 n 1 dp[0] = 1 dp[0] dp 0 1 dp[1] = int(1 not in a) dp[1] dp 1 int(1 not in a) int 1 not in a 1 a for step in range(2, n+1):
    if dp[step-1]==0 and dp[step-2]==0:
        break
    if step not in a:
        dp[step] = (dp[step-1] + dp[step-2])%MOD
    else:
        dp[step] = 0
         step range(2, n+1) range 2 n+1 n 1 if dp[step-1]==0 and dp[step-2]==0:
        break
     dp[step-1]==0 and dp[step-2]==0 dp[step-1]==0 dp[step-1] dp step-1 step 1 0 dp[step-2]==0 dp[step-2] dp step-2 step 2 0 break if step not in a:
        dp[step] = (dp[step-1] + dp[step-2])%MOD
    else:
        dp[step] = 0
         step not in a step a dp[step] = (dp[step-1] + dp[step-2])%MOD dp[step] dp step (dp[step-1] + dp[step-2])%MOD dp[step-1] + dp[step-2] dp[step-1] dp step-1 step 1 dp[step-2] dp step-2 step 2 MOD dp[step] = 0 dp[step] dp step 0 print(dp[-1]) print dp[-1] dp -1 n,m = list(map(int, input().split())) list(map(int, input().split())) n a = set([int(input()) for _ in range(m)]) set([int(input()) for _ in range(m)]) a m = list(map(int, input().split())) list(map(int, input().split())) m dp = [0] * (n+1) [0] * (n+1) dp MOD=10**9+7 10**9+7 MOD
MOD=10**9+7
n,m = list(map(int, input().split()))
a = set([int(input()) for _ in range(m)])

dp = [0] * (n+1)

dp[0] = 1
dp[1] = int(1 not in a)
for step in range(2, n+1):
    if dp[step-1]==0 and dp[step-2]==0:
        break
    if step not in a:
        dp[step] = (dp[step-1] + dp[step-2])%MOD
    else:
        dp[step] = 0
        
print(dp[-1])