import re  # 正規表現, findall('正規表現', 文字列), search('正規表現', 文字列)
import sys # プログラム終了: sys.exit()
# sys.setrecursionlimit(10**6) # 再帰呼び出しの上限を上げる
import math # 階乗: math.factorial()

def i_input(): return int(input())
def s_input(): return map(int,input().split())
def l_input(): return list(map(int, input().split()))
# 文字列のまま受け取りたいときはinput()

def main():
    N, M = s_input()
    A = []
    for _ in range(M):
        A.append(i_input())

    # 0段目を含む
    dp = [0] * (N + 1)

    # 初期化
    dp[0] = 1
    if A[0] == 1:
        dp[1] = 0
    else:
        dp[1] = 1

    for i in range(2, N + 1):
        # print(dp)
        if i in A:
            # print('a', i)
            dp[i] = 0
        else:
            dp[i] = dp[i - 1] + dp[i - 2]

    print(int(dp[-1] % 1000000007))

if __name__ == "__main__":
    main()