def main():

    # 保持しておく値は事前２つだけで十分なので巨大リストを作らない形

    def count_pattern(step, barrier):
        p = 1
        if 1 in barrier:
            q = 0
        else:
            q = 1
        if step == 1:
            return p
        elif step == 2:
            return q
        else:
            for i in range(2, n+1):
                p, q = q, p + q
                if i in barrier:
                    q = 0
            return q

    n, m = map(int, input().split())
    a = [int(input()) for i in range(m)]
    mod = 1000000007
    ans = count_pattern(n, a) % mod       
    print(ans)

    # # フィボナッチ数列を作る要領で行う
    # 巨大なリストをつくるとTLEになる
    # d = [0] * (n+1)
    # # d[0]とd[1]を規定。aに1が含まれていることを考慮して場合分けしておく
    # d[0] = 1
    # if 1 in a:
    #     d[1] = 0
    # else:
    #     d[1] = 1
    # # 階段番号は2~nまでを見る必要がある
    # for i in range(2, n+1):
    #     if i in a:
    #         d[i] = 0
    #     else:
    #         d[i] = d[i-1] + d[i-2]
    # print(d)  
    # ans = d[n] % mod        
    # print(ans)

if __name__ == '__main__':
    main()