N, M = map(int, input().split())
a = [int(input()) for _ in range(M)]


dp = [0] * (N + 1)
dp[0] = 1

# 行けない段
for ai in a:
    dp[ai] = -1

for i in range(1, N + 1):
    # 1段目だけ例外処理
    if i == 1:
        dp[1] += dp[0]

    elif i > 1 and dp[i] != -1:
        if dp[i - 2] != -1:
            dp[i] += dp[i - 2]
        if dp[i - 1] != -1:
            dp[i] += dp[i - 1]

print(dp[N] % (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 dp[0] = 1 dp[0] dp 0 1 for ai in a:
    dp[ai] = -1 ai a dp[ai] = -1 dp[ai] dp ai -1 for i in range(1, N + 1):
    # 1段目だけ例外処理
    if i == 1:
        dp[1] += dp[0]

    elif i > 1 and dp[i] != -1:
        if dp[i - 2] != -1:
            dp[i] += dp[i - 2]
        if dp[i - 1] != -1:
            dp[i] += dp[i - 1] i range(1, N + 1) range 1 N + 1 N 1 if i == 1:
        dp[1] += dp[0]

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


dp = [0] * (N + 1)
dp[0] = 1

# 行けない段
for ai in a:
    dp[ai] = -1

for i in range(1, N + 1):
    # 1段目だけ例外処理
    if i == 1:
        dp[1] += dp[0]

    elif i > 1 and dp[i] != -1:
        if dp[i - 2] != -1:
            dp[i] += dp[i - 2]
        if dp[i - 1] != -1:
            dp[i] += dp[i - 1]

print(dp[N] % (10**9 + 7))
