MOD = 10**9+7
N,  M = map(int, input().split())
a = set()
for i in range(M):
    a.add(int(input()))
stair = [0 for _ in range(N+1)]
stair[0] = 1
if 1 not in a:
    stair[1] = 1

for i in range(2, N+1):
    if i in a:
        stair[i] = 0
    else:
        stair[i] = (stair[i-1] + stair[i-2]) % MOD
print(stair[N]) MOD = 10**9+7 MOD 10**9+7 10**9 10 9 7 N,  M = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split M a = set() a set() set for i in range(M):
    a.add(int(input())) i range(M) range M a.add(int(input())) a.add a add int(input()) int input() input 0 for _ in range(N+1) for _ in range(N+1) _ range(N+1) range N+1 N 1 for _ in range(N+1) 0 stair = [0 for _ in range(N+1)] stair [0 for _ in range(N+1)] stair[0] = 1 stair[0] stair 0 1 if 1 not in a:
    stair[1] = 1 1 not in a 1 a stair[1] = 1 stair[1] stair 1 1 for i in range(2, N+1):
    if i in a:
        stair[i] = 0
    else:
        stair[i] = (stair[i-1] + stair[i-2]) % MOD i range(2, N+1) range 2 N+1 N 1 if i in a:
        stair[i] = 0
    else:
        stair[i] = (stair[i-1] + stair[i-2]) % MOD i in a i a stair[i] = 0 stair[i] stair i 0 stair[i] = (stair[i-1] + stair[i-2]) % MOD stair[i] stair i (stair[i-1] + stair[i-2]) % MOD stair[i-1] + stair[i-2] stair[i-1] stair i-1 i 1 stair[i-2] stair i-2 i 2 MOD print(stair[N]) print stair[N] stair N N,  M = map(int, input().split()) map(int, input().split()) N a = set() set() a M = map(int, input().split()) map(int, input().split()) M stair = [0 for _ in range(N+1)] [0 for _ in range(N+1)] stair MOD = 10**9+7 10**9+7 MOD
MOD = 10**9+7
N,  M = map(int, input().split())
a = set()
for i in range(M):
    a.add(int(input()))
stair = [0 for _ in range(N+1)]
stair[0] = 1
if 1 not in a:
    stair[1] = 1

for i in range(2, N+1):
    if i in a:
        stair[i] = 0
    else:
        stair[i] = (stair[i-1] + stair[i-2]) % MOD
print(stair[N])