N, M = list(map(int, input().split()))

set_a = set([int(eval(input())) for _ in range(M)])

MOD = 10**9 + 7



dp = [0] * (N + 1)

dp[0] = 1

dp[1] = 0 if 1 in set_a else 1

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

    dp[i] = 0 if i in set_a else dp[i-1] + dp[i-2]

ans = dp[N] % MOD



print(ans)
N, M = list(map(int, input().split()))

set_a = set([int(eval(input())) for _ in range(M)])

MOD = 10**9 + 7



dp = [0] * (N + 1)

dp[0] = 1

dp[1] = 0 if 1 in set_a else 1

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

    dp[i] = 0 if i in set_a else dp[i-1] + dp[i-2]

    dp[i] %= MOD

ans = dp[N] % MOD



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

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

+    dp[i] %= MOD