INF = 10 ** 9 + 7

N, M = map(int, input().split())
a = [int(input()) for _ in range(M)]
dp = [0] * (N + 1)
for i in range(M):
    dp[a[i]] = -1

dp[0] = 1
for i in range(1, N + 1):
    if dp[i] == -1: continue
    tmp = 0
    if dp[i - 1] != -1:
        tmp += dp[i - 1]
    if dp[i - 2] != -1 and i > 1:
        tmp += dp[i - 2]
    dp[i] = tmp % INF

print(dp[N]) INF = 10 ** 9 + 7 INF 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 int(input()) for _ in range(M) for _ in range(M) _ range(M) range M for _ in range(M) int(input()) int input() input a = [int(input()) for _ in range(M)] a [int(input()) for _ in range(M)] dp = [0] * (N + 1) dp [0] * (N + 1) [0] 0 N + 1 N 1 for i in range(M):
    dp[a[i]] = -1 i range(M) range M dp[a[i]] = -1 dp[a[i]] dp a[i] a i -1 dp[0] = 1 dp[0] dp 0 1 for i in range(1, N + 1):
    if dp[i] == -1: continue
    tmp = 0
    if dp[i - 1] != -1:
        tmp += dp[i - 1]
    if dp[i - 2] != -1 and i > 1:
        tmp += dp[i - 2]
    dp[i] = tmp % INF i range(1, N + 1) range 1 N + 1 N 1 if dp[i] == -1: continue
     dp[i] == -1 dp[i] dp i -1 tmp = 0 tmp 0 if dp[i - 1] != -1:
        tmp += dp[i - 1]
     dp[i - 1] != -1 dp[i - 1] dp i - 1 i 1 -1 tmp += dp[i - 1] tmp dp[i - 1] dp i - 1 i 1 if dp[i - 2] != -1 and i > 1:
        tmp += dp[i - 2]
     dp[i - 2] != -1 and i > 1 dp[i - 2] != -1 dp[i - 2] dp i - 2 i 2 -1 i > 1 i 1 tmp += dp[i - 2] tmp dp[i - 2] dp i - 2 i 2 dp[i] = tmp % INF dp[i] dp i tmp % INF tmp INF print(dp[N]) print dp[N] dp N tmp = 0 0 tmp dp = [0] * (N + 1) [0] * (N + 1) dp tmp += dp[i - 1] dp[i - 1] tmp N, M = map(int, input().split()) map(int, input().split()) N M = map(int, input().split()) map(int, input().split()) M tmp += dp[i - 2] dp[i - 2] tmp a = [int(input()) for _ in range(M)] [int(input()) for _ in range(M)] a INF = 10 ** 9 + 7 10 ** 9 + 7 INF
INF = 10 ** 9 + 7

N, M = map(int, input().split())
a = [int(input()) for _ in range(M)]
dp = [0] * (N + 1)
for i in range(M):
    dp[a[i]] = -1

dp[0] = 1
for i in range(1, N + 1):
    if dp[i] == -1: continue
    tmp = 0
    if dp[i - 1] != -1:
        tmp += dp[i - 1]
    if dp[i - 2] != -1 and i > 1:
        tmp += dp[i - 2]
    dp[i] = tmp % INF

print(dp[N])