N,M = map(int,input().split())
broken = set()
for i in range(M):
    broken.add(int(input()))
dp = [0 for i in range(N+1)]
dp[0] = 1
if 1 not in broken:
    dp[1] = 1
for i in range(2,N+1):
    if i in broken:
        dp[i] = 0
    else:
        dp[i] = dp[i-1] + dp[i-2]
        dp[i] %= 1000000007
print(dp[N]) N,M = map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split M broken = set() broken set() set for i in range(M):
    broken.add(int(input())) i range(M) range M broken.add(int(input())) broken.add broken add int(input()) int input() input 0 for i in range(N+1) for i in range(N+1) i range(N+1) range N+1 N 1 for i in range(N+1) 0 dp = [0 for i in range(N+1)] dp [0 for i in range(N+1)] dp[0] = 1 dp[0] dp 0 1 if 1 not in broken:
    dp[1] = 1 1 not in broken 1 broken dp[1] = 1 dp[1] dp 1 1 for i in range(2,N+1):
    if i in broken:
        dp[i] = 0
    else:
        dp[i] = dp[i-1] + dp[i-2]
        dp[i] %= 1000000007 i range(2,N+1) range 2 N+1 N 1 if i in broken:
        dp[i] = 0
    else:
        dp[i] = dp[i-1] + dp[i-2]
        dp[i] %= 1000000007 i in broken i broken dp[i] = 0 dp[i] dp i 0 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] %= 1000000007 dp[i] dp i 1000000007 print(dp[N]) print dp[N] dp N M = map(int,input().split()) map(int,input().split()) M N,M = map(int,input().split()) map(int,input().split()) N broken = set() set() broken dp = [0 for i in range(N+1)] [0 for i in range(N+1)] dp
N,M = map(int,input().split())
broken = set()
for i in range(M):
    broken.add(int(input()))
dp = [0 for i in range(N+1)]
dp[0] = 1
if 1 not in broken:
    dp[1] = 1
for i in range(2,N+1):
    if i in broken:
        dp[i] = 0
    else:
        dp[i] = dp[i-1] + dp[i-2]
        dp[i] %= 1000000007
print(dp[N])