n, m = map(int, input().split())
step = [True] * n
r = [0,1]
MOD = 10**9 + 7
for _ in range(m):
    broken = int(input())
    step[broken - 1] = False
for i, tf in enumerate(step):
    if tf:
        r += [(r[i] + r[i+1]) % MOD]
    else:
        r += [0]
print(r[-1]) n, m = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split m step = [True] * n step [True] * n [True] True n r = [0,1] r [0,1] 0 1 MOD = 10**9 + 7 MOD 10**9 + 7 10**9 10 9 7 for _ in range(m):
    broken = int(input())
    step[broken - 1] = False _ range(m) range m broken = int(input()) broken int(input()) int input() input step[broken - 1] = False step[broken - 1] step broken - 1 broken 1 False for i, tf in enumerate(step):
    if tf:
        r += [(r[i] + r[i+1]) % MOD]
    else:
        r += [0] i tf enumerate(step) enumerate step if tf:
        r += [(r[i] + r[i+1]) % MOD]
    else:
        r += [0] tf r += [(r[i] + r[i+1]) % MOD] r [(r[i] + r[i+1]) % MOD] (r[i] + r[i+1]) % MOD r[i] + r[i+1] r[i] r i r[i+1] r i+1 i 1 MOD r += [0] r [0] 0 print(r[-1]) print r[-1] r -1 step = [True] * n [True] * n step r = [0,1] [0,1] r MOD = 10**9 + 7 10**9 + 7 MOD r += [0] [0] r m = map(int, input().split()) map(int, input().split()) m n, m = map(int, input().split()) map(int, input().split()) n broken = int(input()) int(input()) broken r += [(r[i] + r[i+1]) % MOD] [(r[i] + r[i+1]) % MOD] r
n, m = map(int, input().split())
step = [True] * n
r = [0,1]
MOD = 10**9 + 7
for _ in range(m):
    broken = int(input())
    step[broken - 1] = False
for i, tf in enumerate(step):
    if tf:
        r += [(r[i] + r[i+1]) % MOD]
    else:
        r += [0]
print(r[-1])