N, M = list(map(int, input().split()))
a = [int(input()) for _ in range(M)]
MOD = 10 ** 9 + 7
D = [0] * (N + 1)
D[0] = 1

a.append(10 ** 15)
c = 0
for i in range(1, N + 1):
  if a[c] == i:
    c += 1
    continue
  D[i] = D[i - 1]
  if i - 2 >= 0:
    D[i] = (D[i] + D[i - 2]) % MOD

print(D[-1])

 N, M = list(map(int, input().split())) N list(map(int, input().split())) list 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 D = [0] * (N + 1) D [0] * (N + 1) [0] 0 N + 1 N 1 D[0] = 1 D[0] D 0 1 a.append(10 ** 15) a.append a append 10 ** 15 10 15 c = 0 c 0 for i in range(1, N + 1):
  if a[c] == i:
    c += 1
    continue
  D[i] = D[i - 1]
  if i - 2 >= 0:
    D[i] = (D[i] + D[i - 2]) % MOD i range(1, N + 1) range 1 N + 1 N 1 if a[c] == i:
    c += 1
    continue
   a[c] == i a[c] a c i c += 1 c 1 continue D[i] = D[i - 1] D[i] D i D[i - 1] D i - 1 i 1 if i - 2 >= 0:
    D[i] = (D[i] + D[i - 2]) % MOD i - 2 >= 0 i - 2 i 2 0 D[i] = (D[i] + D[i - 2]) % MOD D[i] D i (D[i] + D[i - 2]) % MOD D[i] + D[i - 2] D[i] D i D[i - 2] D i - 2 i 2 MOD print(D[-1]) print D[-1] D -1 a = [int(input()) for _ in range(M)] [int(input()) for _ in range(M)] a MOD = 10 ** 9 + 7 10 ** 9 + 7 MOD c = 0 0 c c += 1 1 c N, M = list(map(int, input().split())) list(map(int, input().split())) N D = [0] * (N + 1) [0] * (N + 1) D M = list(map(int, input().split())) list(map(int, input().split())) M
N, M = list(map(int, input().split()))
a = [int(input()) for _ in range(M)]
MOD = 10 ** 9 + 7
D = [0] * (N + 1)
D[0] = 1

a.append(10 ** 15)
c = 0
for i in range(1, N + 1):
  if a[c] == i:
    c += 1
    continue
  D[i] = D[i - 1]
  if i - 2 >= 0:
    D[i] = (D[i] + D[i - 2]) % MOD

print(D[-1])


