import sys
input = lambda: sys.stdin.readline().strip()
n, m = [int(x) for x in input().split()]
can = [True for i in range(n + 1)]
for i in range(m):
    ai = int(input())
    can[ai] = False
C = [0 for i in range(n + 1)]
for i in range(n + 1):
    if i == 0:
        C[i] = 1
    else:
        C[i] = sum(C[j] if j >= 0 and can[j] else 0 for j in (i - 1, i - 2)) % (10**9 + 7)
print(C[n]) import sys sys input = lambda: sys.stdin.readline().strip() input lambda: sys.stdin.readline().strip() sys.stdin.readline().strip() sys.stdin.readline().strip sys.stdin.readline() sys.stdin.readline sys.stdin sys stdin readline strip int(x) for x in input().split() for x in input().split() x input().split() ().split () input split for x in input().split() int(x) int x n, m = [int(x) for x in input().split()] n [int(x) for x in input().split()] m True 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) True can = [True for i in range(n + 1)] can [True for i in range(n + 1)] for i in range(m):
    ai = int(input())
    can[ai] = False i range(m) range m ai = int(input()) ai int(input()) int input() input can[ai] = False can[ai] can ai False 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 C = [0 for i in range(n + 1)] C [0 for i in range(n + 1)] for i in range(n + 1):
    if i == 0:
        C[i] = 1
    else:
        C[i] = sum(C[j] if j >= 0 and can[j] else 0 for j in (i - 1, i - 2)) % (10**9 + 7) i range(n + 1) range n + 1 n 1 if i == 0:
        C[i] = 1
    else:
        C[i] = sum(C[j] if j >= 0 and can[j] else 0 for j in (i - 1, i - 2)) % (10**9 + 7) i == 0 i 0 C[i] = 1 C[i] C i 1 C[i] = sum(C[j] if j >= 0 and can[j] else 0 for j in (i - 1, i - 2)) % (10**9 + 7) C[i] C i sum(C[j] if j >= 0 and can[j] else 0 for j in (i - 1, i - 2)) % (10**9 + 7) sum(C[j] if j >= 0 and can[j] else 0 for j in (i - 1, i - 2)) sum C[j] if j >= 0 and can[j] else 0 j >= 0 and can[j] j >= 0 j 0 can[j] can j C[j] C j 0 10**9 + 7 10**9 10 9 7 print(C[n]) print C[n] C n m = [int(x) for x in input().split()] [int(x) for x in input().split()] m can = [True for i in range(n + 1)] [True for i in range(n + 1)] can C = [0 for i in range(n + 1)] [0 for i in range(n + 1)] C n, m = [int(x) for x in input().split()] [int(x) for x in input().split()] n ai = int(input()) int(input()) ai input = lambda: sys.stdin.readline().strip() lambda: sys.stdin.readline().strip() input
import sys
input = lambda: sys.stdin.readline().strip()
n, m = [int(x) for x in input().split()]
can = [True for i in range(n + 1)]
for i in range(m):
    ai = int(input())
    can[ai] = False
C = [0 for i in range(n + 1)]
for i in range(n + 1):
    if i == 0:
        C[i] = 1
    else:
        C[i] = sum(C[j] if j >= 0 and can[j] else 0 for j in (i - 1, i - 2)) % (10**9 + 7)
print(C[n])