MOD = 10**9 + 7
N, M = map(int, input().split())
a = [int(input()) for _ in range(M)] + [N + 1]
dp = [0] * (N + 1)
dp[0] = 1
s = -1

for broken in a:
    for j in range(s + 1, broken):
        if j > s + 1:
            dp[j] += dp[j - 1] % MOD
        if j > 1:
            dp[j] += dp[j - 2] % MOD
        dp[j] %= MOD
    s = broken

print(dp[-1]) 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 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)] + [N + 1] a [int(input()) for _ in range(M)] + [N + 1] [int(input()) for _ in range(M)] [N + 1] N + 1 N 1 dp = [0] * (N + 1) dp [0] * (N + 1) [0] 0 N + 1 N 1 dp[0] = 1 dp[0] dp 0 1 s = -1 s -1 for broken in a:
    for j in range(s + 1, broken):
        if j > s + 1:
            dp[j] += dp[j - 1] % MOD
        if j > 1:
            dp[j] += dp[j - 2] % MOD
        dp[j] %= MOD
    s = broken broken a for j in range(s + 1, broken):
        if j > s + 1:
            dp[j] += dp[j - 1] % MOD
        if j > 1:
            dp[j] += dp[j - 2] % MOD
        dp[j] %= MOD
     j range(s + 1, broken) range s + 1 s 1 broken if j > s + 1:
            dp[j] += dp[j - 1] % MOD
         j > s + 1 j s + 1 s 1 dp[j] += dp[j - 1] % MOD dp[j] dp j dp[j - 1] % MOD dp[j - 1] dp j - 1 j 1 MOD if j > 1:
            dp[j] += dp[j - 2] % MOD
         j > 1 j 1 dp[j] += dp[j - 2] % MOD dp[j] dp j dp[j - 2] % MOD dp[j - 2] dp j - 2 j 2 MOD dp[j] %= MOD dp[j] dp j MOD s = broken s broken print(dp[-1]) print dp[-1] dp -1 M = map(int, input().split()) map(int, input().split()) M dp = [0] * (N + 1) [0] * (N + 1) dp a = [int(input()) for _ in range(M)] + [N + 1] [int(input()) for _ in range(M)] + [N + 1] a N, M = map(int, input().split()) map(int, input().split()) N s = -1 -1 s s = broken broken s MOD = 10**9 + 7 10**9 + 7 MOD
MOD = 10**9 + 7
N, M = map(int, input().split())
a = [int(input()) for _ in range(M)] + [N + 1]
dp = [0] * (N + 1)
dp[0] = 1
s = -1

for broken in a:
    for j in range(s + 1, broken):
        if j > s + 1:
            dp[j] += dp[j - 1] % MOD
        if j > 1:
            dp[j] += dp[j - 2] % MOD
        dp[j] %= MOD
    s = broken

print(dp[-1])