N,M=map(int,input().split())
a=[int(input()) for _ in range(M)]

MOD=10**9+7

if N>1:
    dp=[0]*(N+1)
    dp[0]=1
    dp[1]=1

    for i in range(M):
        dp[a[i]]=-1

    for i in range(2,N+1):
        if dp[i]==-1:
            continue

        if dp[i-2]!=-1:
            dp[i]+=dp[i-2]
        
        if dp[i-1]!=-1:
            dp[i]+=dp[i-1]
        
        dp[i]=dp[i]%MOD

    print(dp[N])

else:
    if M==0:
        print(1)
    else:
        print(0) 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)] MOD=10**9+7 MOD 10**9+7 10**9 10 9 7 if N>1:
    dp=[0]*(N+1)
    dp[0]=1
    dp[1]=1

    for i in range(M):
        dp[a[i]]=-1

    for i in range(2,N+1):
        if dp[i]==-1:
            continue

        if dp[i-2]!=-1:
            dp[i]+=dp[i-2]
        
        if dp[i-1]!=-1:
            dp[i]+=dp[i-1]
        
        dp[i]=dp[i]%MOD

    print(dp[N])

else:
    if M==0:
        print(1)
    else:
        print(0) 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 dp[1]=1 dp[1] dp 1 1 for i in range(M):
        dp[a[i]]=-1

     i range(M) range M dp[a[i]]=-1 dp[a[i]] dp a[i] a i -1 for i in range(2,N+1):
        if dp[i]==-1:
            continue

        if dp[i-2]!=-1:
            dp[i]+=dp[i-2]
        
        if dp[i-1]!=-1:
            dp[i]+=dp[i-1]
        
        dp[i]=dp[i]%MOD

     i range(2,N+1) range 2 N+1 N 1 if dp[i]==-1:
            continue

         dp[i]==-1 dp[i] dp i -1 continue if dp[i-2]!=-1:
            dp[i]+=dp[i-2]
        
         dp[i-2]!=-1 dp[i-2] dp i-2 i 2 -1 dp[i]+=dp[i-2] dp[i] dp i dp[i-2] dp i-2 i 2 if dp[i-1]!=-1:
            dp[i]+=dp[i-1]
        
         dp[i-1]!=-1 dp[i-1] dp i-1 i 1 -1 dp[i]+=dp[i-1] dp[i] dp i dp[i-1] dp i-1 i 1 dp[i]=dp[i]%MOD dp[i] dp i dp[i]%MOD dp[i] dp i MOD print(dp[N]) print dp[N] dp N if M==0:
        print(1)
    else:
        print(0) M==0 M 0 print(1) print 1 print(0) print 0 MOD=10**9+7 10**9+7 MOD N,M=map(int,input().split()) map(int,input().split()) N dp=[0]*(N+1) [0]*(N+1) dp a=[int(input()) for _ in range(M)] [int(input()) for _ in range(M)] a M=map(int,input().split()) map(int,input().split()) M
N,M=map(int,input().split())
a=[int(input()) for _ in range(M)]

MOD=10**9+7

if N>1:
    dp=[0]*(N+1)
    dp[0]=1
    dp[1]=1

    for i in range(M):
        dp[a[i]]=-1

    for i in range(2,N+1):
        if dp[i]==-1:
            continue

        if dp[i-2]!=-1:
            dp[i]+=dp[i-2]
        
        if dp[i-1]!=-1:
            dp[i]+=dp[i-1]
        
        dp[i]=dp[i]%MOD

    print(dp[N])

else:
    if M==0:
        print(1)
    else:
        print(0)