Buggy python submission (verdict: Time Limit Exceeded):
n, m = [int(i) for i in input().split(" ")]

l = list(range(1, n+1))
divider = 10**9 + 7
ans = [0]*(n + 1)
ans[0] = 1
ans[1] = 1

for i in range(m):
    inp = int(input())
    l.remove(inp)
    if inp == 1:
        ans[1] = 0

if 1 in l:
    l.remove(1)

for i in l:
    ans[i] = ans[i-1] + ans[i-2]
    
   
print(ans[n] % divider)

Fixed submission:
n, m = [int(i) for i in input().split(" ")]

l = list(range(1, n+1))
divider = 10**9 + 7
ans = [0]*(n + 1)
broken = [False]*(n+1)
ans[0] = 1
ans[1] = 1

for i in range(m):
    a = int(input())
    broken[a] = True
    if a == 1:
        ans[1] = 0
    
for i in range(2,n+1):
    if broken[i] == False:
        ans[i] = ans[i-1] + ans[i-2]
    
   
print(ans[n] % divider)

Buggy python submission (verdict: Time Limit Exceeded):
n, m = [int(i) for i in input().split(" ")]
s = [int(input()) for _ in range(m)]

divider = 10**9 + 7
ans = [0]*(n + 1)
ans[0] = 1
ans[1] = 1
l = list(range(2, n+1))

if 1 in s:
    ans[1] = 0
    s.remove(1)


for i in s:
    l.remove(i)   

for i in l:
    ans[i] = ans[i-1] + ans[i-2]
    
   
print(ans[n] % divider)

Fixed submission:
n, m = [int(i) for i in input().split(" ")]

l = list(range(1, n+1))
divider = 10**9 + 7
ans = [0]*(n + 1)
broken = [False]*(n+1)
ans[0] = 1
ans[1] = 1

for i in range(m):
    a = int(input())
    broken[a] = True
    if a == 1:
        ans[1] = 0
    
for i in range(2,n+1):
    if broken[i] == False:
        ans[i] = ans[i-1] + ans[i-2]
    
   
print(ans[n] % divider)

Buggy python submission (verdict: Time Limit Exceeded):
n, m = [int(i) for i in input().split(" ")]
s = [int(input()) for _ in range(m)]

divider = 10**9 + 7
ans = [0]*(n + 1)
ans[0] = 1
ans[1] = 1

if 1 in s:
    ans[1] = 0
        
for i in range(2, n+1):
    
    if i in s:
        continue
    else:
        ans[i] = ans[i-1] + ans[i-2]
    
   
print(ans[n] % divider)

Fixed submission:
n, m = [int(i) for i in input().split(" ")]

l = list(range(1, n+1))
divider = 10**9 + 7
ans = [0]*(n + 1)
broken = [False]*(n+1)
ans[0] = 1
ans[1] = 1

for i in range(m):
    a = int(input())
    broken[a] = True
    if a == 1:
        ans[1] = 0
    
for i in range(2,n+1):
    if broken[i] == False:
        ans[i] = ans[i-1] + ans[i-2]
    
   
print(ans[n] % divider)

Buggy python submission (verdict: Time Limit Exceeded):
n, m = [int(i) for i in input().split(" ")]
s = [int(input()) for _ in range(m)]

divider = 10**9 + 7
ans = [0]*(n + 1)
ans[0] = 1
ans[1] = 1

if 1 in s:
    ans[1] = 0
        
for i in range(2, n+1):
    
    ans[i] = ans[i-1] + ans[i-2]
    if i in s:
        ans[i] = 0
   
print(ans[n] % divider)

Fixed submission:
n, m = [int(i) for i in input().split(" ")]

l = list(range(1, n+1))
divider = 10**9 + 7
ans = [0]*(n + 1)
broken = [False]*(n+1)
ans[0] = 1
ans[1] = 1

for i in range(m):
    a = int(input())
    broken[a] = True
    if a == 1:
        ans[1] = 0
    
for i in range(2,n+1):
    if broken[i] == False:
        ans[i] = ans[i-1] + ans[i-2]
    
   
print(ans[n] % divider)

Buggy python submission (verdict: Time Limit Exceeded):
n, m = [int(i) for i in input().split(" ")]
s = [int(input()) for _ in range(m)]
divider = 10**9 + 7
ans = [0]*(n + 1)
ans[0] = 1
ans[1] = 1

for j in [0,1]:
    if j in s:
        ans[j] = 0
        
for i in range(2, n+1):
    
    ans[i] = ans[i-1] + ans[i-2]
    if i in s:
        ans[i] = 0
   
print(ans[n] % divider)

Fixed submission:
n, m = [int(i) for i in input().split(" ")]

l = list(range(1, n+1))
divider = 10**9 + 7
ans = [0]*(n + 1)
broken = [False]*(n+1)
ans[0] = 1
ans[1] = 1

for i in range(m):
    a = int(input())
    broken[a] = True
    if a == 1:
        ans[1] = 0
    
for i in range(2,n+1):
    if broken[i] == False:
        ans[i] = ans[i-1] + ans[i-2]
    
   
print(ans[n] % divider)