n, m=list(map(int, input().split()))

a=[int(eval(input())) for i in range(m)]

mod=10**9 +7

dp=[1]*(n+1)

dp[0]=1

dp[1]=1



for i in range(m):

    dp[a[i]] = 0



for i in range(2, n+1):

    

    if dp[i] > 0:

        dp[i]=dp[i-1]+dp[i-2]



print((dp[n]%mod))
n, m=list(map(int, input().split()))

a=[int(eval(input())) for i in range(m)]

mod=10**9 +7

dp=[1]*(n+1)

dp[0]=1

dp[1]=1



for i in range(m):

    dp[a[i]] = 0



for i in range(2, n+1):

    

    if dp[i] > 0:

        dp[i]=(dp[i-1]+dp[i-2])%mod



print((dp[n]))
n, m = list(map(int, input().split()))
a = [int(eval(input())) for i in range(m)]
mod = 10**9 + 7
dp = [1] * (n + 1)
dp[0] = 1
dp[1] = 1
for i in range(m):
    dp[a[i]] = 0
for i in range(2, n + 1):
    if dp[i] > 0:
        dp[i] = dp[i - 1] + dp[i - 2]
print((dp[n] % mod))

n, m = list(map(int, input().split()))
a = [int(eval(input())) for i in range(m)]
mod = 10**9 + 7
dp = [1] * (n + 1)
dp[0] = 1
dp[1] = 1
for i in range(m):
    dp[a[i]] = 0
for i in range(2, n + 1):
    if dp[i] > 0:
        dp[i] = (dp[i - 1] + dp[i - 2]) % mod
print((dp[n]))

-        dp[i] = dp[i - 1] + dp[i - 2] -print((dp[n] % mod)) +        dp[i] = (dp[i - 1] + dp[i - 2]) % mod +print((dp[n]))