n,m=map(int,input().split())
a=[int(input()) for _ in range(m)]
l=[1]+[0 for _ in range(n+5)]
if m==0:a=[200000]
for x in range(n):
    if x<a[0]:
        l[x+1]+=l[x]
        l[x+2]+=l[x]
    if x==a[0]:
        if len(a)>=2:a.pop(0)
        else:a[0]=200000
print(l[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)] 0 for _ in range(n+5) for _ in range(n+5) _ range(n+5) range n+5 n 5 for _ in range(n+5) 0 l=[1]+[0 for _ in range(n+5)] l [1]+[0 for _ in range(n+5)] [1] 1 [0 for _ in range(n+5)] if m==0:a=[200000] m==0 m 0 for x in range(n):
    if x<a[0]:
        l[x+1]+=l[x]
        l[x+2]+=l[x]
    if x==a[0]:
        if len(a)>=2:a.pop(0)
        else:a[0]=200000 x range(n) range n if x<a[0]:
        l[x+1]+=l[x]
        l[x+2]+=l[x]
     x<a[0] x a[0] a 0 l[x+1]+=l[x] l[x+1] l x+1 x 1 l[x] l x l[x+2]+=l[x] l[x+2] l x+2 x 2 l[x] l x if x==a[0]:
        if len(a)>=2:a.pop(0)
        else:a[0]=200000 x==a[0] x a[0] a 0 if len(a)>=2:a.pop(0)
        else:a[0]=200000 len(a)>=2 len(a) len a 2 print(l[n]%(10**9+7)) print l[n]%(10**9+7) l[n] l n 10**9+7 10**9 10 9 7 m=map(int,input().split()) map(int,input().split()) m l=[1]+[0 for _ in range(n+5)] [1]+[0 for _ in range(n+5)] l a=[int(input()) for _ in range(m)] [int(input()) for _ in range(m)] a n,m=map(int,input().split()) map(int,input().split()) n
n,m=map(int,input().split())
a=[int(input()) for _ in range(m)]
l=[1]+[0 for _ in range(n+5)]
if m==0:a=[200000]
for x in range(n):
    if x<a[0]:
        l[x+1]+=l[x]
        l[x+2]+=l[x]
    if x==a[0]:
        if len(a)>=2:a.pop(0)
        else:a[0]=200000
print(l[n]%(10**9+7))