import sys
def input(): return sys.stdin.readline().strip()
def mapint(): return map(int, input().split())
sys.setrecursionlimit(10**9)

N, M = mapint()
mod = 10**9+7

dp = [0]*(N+1)
dp[0] = 1
broken = set([int(input()) for _ in range(M)])
for i in range(1, N+1):
    if i in broken:
        continue
    dp[i] += dp[i-1]
    if i>=2:
        dp[i] += dp[i-2]
    dp[i] %= mod
print(dp[-1]) import sys sys def input(): return sys.stdin.readline().strip() input def mapint(): return map(int, input().split()) mapint sys.setrecursionlimit(10**9) sys.setrecursionlimit sys setrecursionlimit 10**9 10 9 N, M = mapint() N mapint() mapint M mod = 10**9+7 mod 10**9+7 10**9 10 9 7 dp = [0]*(N+1) dp [0]*(N+1) [0] 0 N+1 N 1 dp[0] = 1 dp[0] dp 0 1 int(input()) for _ in range(M) for _ in range(M) _ range(M) range M for _ in range(M) int(input()) int input() input broken = set([int(input()) for _ in range(M)]) broken set([int(input()) for _ in range(M)]) set [int(input()) for _ in range(M)] for i in range(1, N+1):
    if i in broken:
        continue
    dp[i] += dp[i-1]
    if i>=2:
        dp[i] += dp[i-2]
    dp[i] %= mod i range(1, N+1) range 1 N+1 N 1 if i in broken:
        continue
     i in broken i broken continue dp[i] += dp[i-1] dp[i] dp i dp[i-1] dp i-1 i 1 if i>=2:
        dp[i] += dp[i-2]
     i>=2 i 2 dp[i] += dp[i-2] dp[i] dp i dp[i-2] dp i-2 i 2 dp[i] %= mod dp[i] dp i mod print(dp[-1]) print dp[-1] dp -1 def input(): return sys.stdin.readline().strip() def input(): return sys.stdin.readline().strip() input def mapint(): return map(int, input().split()) def mapint(): return map(int, input().split()) mapint M = mapint() mapint() M mod = 10**9+7 10**9+7 mod broken = set([int(input()) for _ in range(M)]) set([int(input()) for _ in range(M)]) broken N, M = mapint() mapint() N dp = [0]*(N+1) [0]*(N+1) dp
import sys
def input(): return sys.stdin.readline().strip()
def mapint(): return map(int, input().split())
sys.setrecursionlimit(10**9)

N, M = mapint()
mod = 10**9+7

dp = [0]*(N+1)
dp[0] = 1
broken = set([int(input()) for _ in range(M)])
for i in range(1, N+1):
    if i in broken:
        continue
    dp[i] += dp[i-1]
    if i>=2:
        dp[i] += dp[i-2]
    dp[i] %= mod
print(dp[-1])