Harryxun/stf_run huggingface dataset:
# coding: utf-8
# Here your code !
N = int(input())

w = 0
for h in range(1 , 3501) : 
    if w != 0 : break
    x = 4 / N - 1 / h
    if x <= 0 : continue
    for n in range(1 , 3501) : 
        y = x - 1/n
        if y <= 0 : continue
        if n % (x*n - 1)  == 0 : 
            w = int(n / (n*x - 1))
            break
        
print(h - 1,n,w)

### FIXED CODE ###

# coding: utf-8
# Here your code !
N = int(input())

w = 0
for h in range(1 , int(3*N/4 )+ 1) : 
    if w != 0 : 
        h -= 1
        break
    x = 4 / N - 1 / h
    if x <= 0 : continue
    for n in range(1 , int(2/(4/N - 1/h)) + 1) : 
        if (4*h*n - N*n - N*h)  <= 0 : continue
        if (N*h*n) % (4*h*n - N*n - N*h)  == 0 : 
            w = int((N*h*n) / (4*h*n - N*n - N*h) )
            break
        
print(h ,n,w)
import numpy as np


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

res_list = []

for i in range(N-1):
    num = i
    pos = (N-1) - num

    if H_list[num] >= H_list[num+1]:
        res_list.append(1)
    else:
        res_list.append(0)

res_arr = np.array(res_list)
offset = 1
res_diff = res_arr[1:] - res_arr[:-1]
pos1to0 = np.where(res_diff == -1)[0] + offset
pos0to1 = np.where(res_diff == +1)[0] + offset
tarr = pos1to0 - pos0to1
if len(tarr) != 0:
    if res_arr[-1] == 0:
        pos0to1 = np.append([0], pos0to1)
        len11 = tarr.max()
    else:
        len11 = pos0to1[0] - pos1to0[0] + 1
        
    print(len11)
else:
    print(0)


### FIXED CODE ###

import numpy as np


N = int(input())
A = np.array(input().split(), dtype=np.int32)

left_idx = np.arange(N)
# 自身が左以下ならば0に
left_idx[1:][A[:-1] >= A[1:]] = 0
np.maximum.accumulate(left_idx, out=left_idx)

answer = (np.arange(N) - left_idx).max()
print(answer)
N,Y = map(int,input().split())
x = y = z = 0
for i in range(N,-1,-1):
    if i*10000 <= Y:
        charge = Y - i*10000
        rest = N - i
        for j in range(rest,-1,-1):
            if j*5000 <= charge:
                if charge - j*50000 - (rest-j)*1000 == 0:
                    print(f'{i} {j} {rest-j}')
                    exit(0)
print('-1 -1 -1 ')


### FIXED CODE ###

N,Y = map(int,input().split())
x = y = z = 0
for i in range(N,-1,-1):
    if i*10000 <= Y:
        charge = Y - i*10000
        rest = N - i
        for j in range(rest,-1,-1):
            if j*5000 <= charge:
                if charge - j*5000 - (rest-j)*1000 == 0:
                    print('{0} {1} {2}'.format(i, j ,rest-j))
                    exit(0)
print('-1 -1 -1')
h,w=map(int,input().split())
lis=[]
outp=[[0 for i in range(w)] for j in range(h)]
outs=[""]*h
for i in range(h):
    lis.append(input())
for i in range(h):
    for j in range(w):
        if(lis[i][j]=="#"):
            for k in range(-1,2):
                for l in range(-1,2):
                    if(i+k>=0 and i+k<w and j+l>=0 and j+l<h):
                        outp[i+k][j+l]+=1
for i in range(h):
    for j in range(w):
        if(lis[i][j]=="#"):
            outs[i]+="#"
        else:
            outs[i]+=str(outp[i][j])
for i in range(h):
    print(outs[i])

### FIXED CODE ###

h,w=map(int,input().split())
lis=[]
outp=[[0 for i in range(w)] for j in range(h)]
outs=[""]*h
for i in range(h):
    lis.append(input())
for i in range(h):
    for j in range(w):
        if(lis[i][j]=="#"):
            for k in range(-1,2):
                for l in range(-1,2):
                    if(i+k>=0 and i+k<h and j+l>=0 and j+l<w):
                        outp[i+k][j+l]+=1
for i in range(h):
    for j in range(w):
        if(lis[i][j]=="#"):
            outs[i]+="#"
        else:
            outs[i]+=str(outp[i][j])
for i in range(h):
    print(outs[i])
sstr=list(input())
s=[int(n) for n in sstr]
sf=[s[0],s[1]]
sb=[s[2],s[3]]
if sf[0]==0:
  sf.pop(0)
if sb[0]==0:
  sb.pop(0)
fw="".join(sf)
bk="".join(sb)
if 1<=fw<=12:
  if 1<=bk<=12:
    print("AMBIGUOUS")
  else:
    print("MMYY")
else:
  if 1<=bk<=12:
    print("YYMM")
  else:
    print("NA")

### FIXED CODE ###

sstr=list(input())
# s=[int(n) for n in sstr]
# print(sstr)
sf=[sstr[0],sstr[1]]
sb=[sstr[2],sstr[3]]
if sf[0]=="0":
  sf.pop(0)
if sb[0]=="0":
  sb.pop(0)
fws="".join(sf)
bks="".join(sb)
fwb=[int(n) for n in fws]
bkb=[int(n) for n in bks]
# print(fwb)
# print(bkb)
if len(fwb)==2:
    fw=(fwb[0]*10)+(fwb[1])
else:
    fw=fwb[0]
if len(bkb)==2:
    bk=(bkb[0]*10)+(bkb[1])
else:
    bk=bkb[0]
# print(fw)
# print(bk)
if 1<=fw<=12:
  if 1<=bk<=12:
    print("AMBIGUOUS")
  else:
    print("MMYY")
else:
  if 1<=bk<=12:
    print("YYMM")
  else:
    print("NA")
"""
sstr=list(input())
s=[int(n) for n in sstr]
if s[0]>=2: #前2桁の十の位が2より大きければ前は年
    if s[2]>=2: #後2桁の十の位が2以上ならば該当なし
        print("NA")
    elif s[2]==1: #後2桁の十の位が1なら一の位は0-2
        if s[3]>=3: #後2桁の一の位が3以上ならNA
            print("NA")
        else: #後2桁の一の位が0-2ならYYMM
            print("YYMM")
    else: #後2桁の十の位が0ならYYMMかNA
        if s[3]==0: #後2桁の一の位が0ならNA
            print("NA")
        else: #後2桁の一の位が0でなければYYMM
            print("YYMM")

elif s[0]==1: #前2桁の十の位が1なら場合分け
    if s[1]>=3: #前2桁の一の位が3以上ならYYMMかNA
        if s[2]>=2: #後2桁の十の位が2以上ならNA
            print("NA")
        elif s[2]==1: #後2桁の十の位が1なら一の位は0-2
            if s[3]>=3: #後2桁の一の位が3以上ならNA
                print("NA")
            else: #後2桁の一の位が2以下ならYYMM
                print("YYMM")
        else: #後2桁の十の位が0ならYYMMかNA
            if s[3]==0:
                print("NA")
            else:
                print("YYMM")
    else: #前2桁の一の位が0-2ならMMYYかAMBIGUOUS
        if s[2]>=2: #後2桁の十の位が2以上ならMMYY
            print("MMYY")
        elif s[2]==1: #後2桁の十の位が1なら場合分け
            if s[3]>=3: #後2桁の一の位が3以上ならMMYY
                print("MMYY")
            else: #後2桁の一の位が2以下ならAMBIGUOUS
                print("AMBIGUOUS")
        else: #後2桁の十の位が0ならAMBIGUOUS
            print("AMBIGUOUS")

else: #前2桁の十の位が0ならMMYYかAMBIGIOUS
    if s[2]>=2: #後2桁の十の位が2以上ならMMYY
        if s[1]==0:
            print("NA")
        else:
            print("MMYY")
    elif s[2]==1: #後2桁の十の位が1なら場合分け
        if s[3]<=2: #後2桁の一の位が0-2ならAMBIGUOUS
            print("AMBIGUOUS")
        else: #後2桁の一の位が3以上ならMMYY
            print("MMYY")
    else: #後2桁の十の位が0ならAMBIGUOUSかNA
        if s[3]==0: #後2桁の一の位が0なら0x00のxを調査
            if s[1]==0:
                print("NA")
            else:
                print("MMYY")
        else:
            print("AMBIGUOUS")
            """
X, A, B = map(int, input().split())
if A <= B:
    print("delicious")
if (B-A) <= X:
    pirint("safe")
if X < (B-A):
    print("dangerous")

### FIXED CODE ###

X, A, B = map(int, input().split())
if B <= A:
    print("delicious")
else:
    if (B-A) <= X:
        print("safe")
    if (B-A) > X:
        print("dangerous")
#!python3

import sys
iim = lambda: map(int, sys.stdin.readline().rstrip().split())

def bit_add(a, i, n, x):
    while i < n:
        a[i] += x
        i += i & -i
def bit_add2(a, i, j, n, x):
    while i < j:
        while i < j:
            a[i] += x
            i += i & -i
        while j < i and j < n:
            a[j] -= x
            j += j & -j
def bit_add3(a, i, j, n, x):
    if j<<1 < n:
        n = 1 << j.bit_length()
    bit_add(a, i, n, x)
    bit_add(a, j, n, -x)
def bit_add4(a, i, j, n, x):
    if j<<1 < n:
        n = 1 << j.bit_length()
    while i < n:
        a[i] += x
        i += i & -i
    while j < n:
        a[j] -= x
        j += j & -j

def bit_sum(a, i):
    res = 0
    while i > 0:
        res += a[i]
        i ^= i & -i
    return res
def bit_select(a, i):
    if i & 1: return a[i]
    return a[i] - a[i-1]

def resolve():
    it = map(int, sys.stdin.read().split())
    N, Q = next(it), next(it)
    X = Q.bit_length()
    mask, br, bc = (1 << X)-1, 2*X+1, 1<<X

    if Q == 3:
        raise 1

    Aa = [next(it)-1 for i in range(N)]
    Aq = [0] * Q
    Ac = [0] * Q
    for i in range(Q):
        l, r = next(it), next(it)
        Aq[i] = r<<X | i
        Ac[i] = l

    Aq.sort()
    dp = [1] * N
    N1 = N+1
    bit = [0] * N1

    ans = [0] * Q
    offset = 0
    for arg in Aq:
        r = arg >> X
        i = arg & mask

        for j in range(offset, r):
            ci = Aa[j]
            j += 2

            j0 = dp[ci]
            bit_add4(bit, j0, j, N1, 1)
            #bit_add(bit, j0, N1, 1)
            #bit_add(bit, j, N1, -1)

            dp[ci] = j

        offset = r
        l = Ac[i]

        ans[i] = bit_sum(bit, l)

    print(*ans, sep="\n")


if __name__ == "__main__":
    resolve()


### FIXED CODE ###

#!python3

import sys
iim = lambda: map(int, sys.stdin.readline().rstrip().split())

def resolve():
    it = map(int, sys.stdin.read().split())
    X = 19
    N, Q = next(it), next(it)
    X = Q.bit_length()
    b1, br, bc = (1 << X)-1, 2*X+1, 1<<X

    Aa = [next(it)-1 for i in range(N)]
    Aq = [0] * Q
    Ac = [0] * Q
    for i in range(Q):
        l, r = next(it)-1, next(it)-1
        Aq[i] = r<<X | i
        Ac[i] = l

    Aq.sort()
    dp = [0] * N

    N1 = (2*N+1)//2
    dp2 = [0] * (N1*2)

    ans = [0] * Q
    offset = 0
    for arg in Aq:
        r = arg >> X
        i = arg & b1

        for j in range(offset, r+1):
            ci = Aa[j]

            lo = N1 + dp[ci]
            hi = N1 + j

            while lo < hi:
                if lo & 1:
                    dp2[lo] += 1
                    lo += 1
                if not hi & 1:
                    dp2[hi] += 1
                    hi -= 1
                lo >>= 1; hi >>= 1;

            if lo == hi: dp2[lo] += 1

            dp[ci] = j + 1
        offset = r+1
        l = Ac[i]

        num = 0
        j = l + N1
        while j > 0:
            num += dp2[j]
            j >>= 1
        ans[i] = num

    print(*ans, sep="\n")


if __name__ == "__main__":
    resolve()
N = int(input())
sum = 0
for i in range(N):
    x,u = input().split()
    x = float(x)
    if u = 'BTC':
        x *= 380000.0
    sum += x
print(sum)

### FIXED CODE ###

N = int(input())
sum = 0.0
for i in range(N):
    x,u = input().split()
    x = float(x)
    if u == 'BTC':
        x *= 380000.0
    sum += x
print(sum)
N = int(input())
n = N % 10

print('bon' if n == 3)
print('pon' if n == 0 or n == 1 or n == 6 or n == 8)
print('hon' if n == 2 or n == 4 or n == 5 or n == 7 or n == 9)
  

### FIXED CODE ###

n = int(input()) % 10
print('bon' if n == 3 else 'pon' if n == 0 or n == 1 or n == 6 or n == 8 else 'hon')
n=int(input())
s,p=input().split()
p=int(p)
li=[]

for i in range(0,n):
  li.append((i+1,s,p))


new_li=sorted(li,key=lambda x:(x[1],-x[2]))


for j in range(len(new2_li)):
  print(new_li[j][0])


### FIXED CODE ###

n=int(input())

li=[]

for i in range(0,n):
  s,p=input().split()
  p=int(p)
  li.append((i+1,s,p))


new_li=sorted(li,key=lambda x:x[2] , reverse=True)
new2_li=sorted(new_li,key=lambda x:x[1])


for j in range(0,n):
  print(new2_li[j][0])
def input_from_console():
    n, d = map(int, input().split())
    x_matrix = []
    for i in range(n):
        x = map(int, input().split())
        x_matrix.append(list(x))
    return n, d, x_matrix


def solve(n, d, x_matrix):
    result = 0
    for i in range(n):
        for j in range(n - i -1):
            distance = math.sqrt(sum([(p1 - p2) ** 2 for p1, p2 in zip(x_matrix[i], x_matrix[j + i + 1])]))
            if distance == int(distance):
                result += 1
    return result


def main():
    n, d, x_matrix = input_from_console()
    print(solve(n, d, x_matrix))


if __name__ == "__main__":
    import sys

    if sys.gettrace():  # Check if the python interpreter is in debug mode or not.
        check_cases()
    else:
        main()


### FIXED CODE ###

import math

def input_from_console():
    n, d = map(int, input().split())
    x_matrix = []
    for i in range(n):
        x = map(int, input().split())
        x_matrix.append(list(x))
    return n, d, x_matrix


def solve(n, d, x_matrix):
    result = 0
    for i in range(n):
        for j in range(n - i -1):
            distance = math.sqrt(sum([(p1 - p2) ** 2 for p1, p2 in zip(x_matrix[i], x_matrix[j + i + 1])]))
            if distance == int(distance):
                result += 1
    return result


def main():
    n, d, x_matrix = input_from_console()
    print(solve(n, d, x_matrix))


if __name__ == "__main__":
    import sys

    if sys.gettrace():  # Check if the python interpreter is in debug mode or not.
        check_cases()
    else:
        main()
import math
S = int(input())

X2 = math.floor(math.sqrt(S))
if X2.is_integer():
    print(0, 0, int(X2), 0, 0, int(S/X2))
    exit()

X2 = int(math.floor(math.sqrt(S))) + 1
Y3 = X2
print(0, 0, X2, S-(X2*Y3), 1, Y3)

### FIXED CODE ###

import math
S = int(input())

X2 = math.sqrt(S)
if X2.is_integer():
    print(0, 0, int(X2), 0, 0, int(X2))
else:
    X2 = int(math.floor(X2)) + 1
    Y3 = X2
    print(0, 0, X2, (X2*Y3)-S, 1, Y3)
s, w = map(int, input().split())

if s =< w:
  print('unsafe')
else:
  print('safe')

### FIXED CODE ###

s, w = map(int, input().split())

if s <= w:
  print('unsafe')
else:
  print('safe')
import sys
n, x = map(int, sys.stdin.readline().split())
llist = list(map(int, sys.stdin.readline().split()))

d = 0
ans = 0
while d <= x:
  ans += 1
  d += llist[ans-1]
print(ans)

### FIXED CODE ###

import sys
n, x = map(int, sys.stdin.readline().split())
llist =list(map(int, sys.stdin.readline().split()))

d = 0
ans = 1
for l in llist:
  ans += 1
  d += l
  if d > x:
    ans -= 1
    break
  elif d == x:
    break
  
  if ans >= n+1:
    print(n+1)
    exit()
print(ans)
a,b,k=map(int,input().split())
if 2*k=>b-a+1:
  for i in range(a,b+1):
    print(i)
else:
  for i in range(a,a+k):
    print(i)
  for i in range(b-k+1,b+1):
    print(i)

### FIXED CODE ###

a,b,k=map(int,input().split())
if 2*k>=b-a+1:
  for i in range(a,b+1):
    print(i)
else:
  for i in range(a,a+k):
    print(i)
  for i in range(b-k+1,b+1):
    print(i)
import numpy as np

n=int(input())
a=np.array(list(map(int,input().split())))

ans=0
#print(a%(np.array([a for _ in range(n)])).transpose()==0)
b=(np.array([a for _ in range(n)])).transpose()%a==0

for i in range(n):
  #b=a[i]%a==0
  #print(b[i])
  #print(np.count_nonzero(b[i]))
  if np.count_nonzero(b[i])==1:
    ans+=1
print(ans)


### FIXED CODE ###

import sys
def input(): return sys.stdin.readline()

n=int(input())
A=list(map(int,input().split()))
cnt=[0]*(10**6+2)
ans=0
for a in A:
  if cnt[a]!=0:
    cnt[a]=2
    continue
  x=a
  while x<10**6+2:
    cnt[x]+=1
    x+=a
for a in A:
  #print(cnt[a])
  if cnt[a]==1:
    ans+=1
print(ans)
import math 
N = int(input())
A= list(map(int,input().split()))
memo_gcd_foward = [A[0]]
memo_gcd_backward = [A[N-1]]

for i in range(N-1):
    memo_gcd_foward.append(math.gcd(memo_gcd_foward[-1],A[i+1]))

for i in range(N-1):
    memo_gcd_backward.append(math.gcd(memo_gcd_backward[-1],A[-i-2]))


cand = []
cand.append(memo_gcd_foward[-1])
cand.append(memo_gcd_foward[-2])
cand.append(memo_gcd_backward[-2])

for i in range(N-2):
    cand.append(math.gcd(memo_gcd_foward[i],memo_gcd_backward[-i-3]))
print(max(cand))

### FIXED CODE ###

import math 
N = int(input())
A= list(map(int,input().split()))
memo_gcd_foward = [A[0]]
memo_gcd_backward = [A[N-1]]

def gcd(a, b):
    if a < b:
        a, b = b, a
    if b == 0:
        return a
    c = a % b
    return gcd(b, c)

for i in range(N-1):
    memo_gcd_foward.append(gcd(memo_gcd_foward[-1],A[i+1]))

for i in range(N-1):
    memo_gcd_backward.append(gcd(memo_gcd_backward[-1],A[-i-2]))


cand = []
cand.append(memo_gcd_foward[-1])
cand.append(memo_gcd_foward[-2])
cand.append(memo_gcd_backward[-2])

for i in range(N-2):
    cand.append(gcd(memo_gcd_foward[i],memo_gcd_backward[-i-3]))
print(max(cand))
N,M =map(int,input().split())
if M>0:
    a = [0]*M
    for i in range(M):
        a[i] = int(input())

ans = int(1)

A = [0]*(M+1)
A[0] = a[0]-1
A[M] = N - a[M-1]-1
for i in range(M-1):
    A[i+1] = a[i+1] - a[i]- 2
    if A[i+1]==-1:
        ans = 0

SA =[0]*N
SA[0] = int(1)
SA[1] = int(1)
for i in range(N-2):
    SA[i+2] = SA[i+1] + SA[i]
    SA[i+2] = SA[i+2]%1000000007

for i in range(M+1):
    ans *= SA[A[i]]
    ans = ans%1000000007


print(ans)


### FIXED CODE ###

def examC():
    N, M = LI()
    A = [I() for _ in range(M)]
    A.append(N+1)
    fib = [1]*(N+2)
    for i in range(1,N):
        fib[i+2] = fib[i+1] + fib[i]
    fib[0] = 0
#    print(fib)
    ans = fib[A[0]]%mod
    for i in range(M):
        ans *= fib[A[i+1]-A[i]-1]
        ans %=mod
    print(ans)
    return

def examD():
    return

import sys,copy,bisect,itertools,heapq,math
from heapq import heappop,heappush,heapify
from collections import Counter,defaultdict,deque
def I(): return int(sys.stdin.readline())
def LI(): return list(map(int,sys.stdin.readline().split()))
def LSI(): return list(map(str,sys.stdin.readline().split()))
def LS(): return sys.stdin.readline().split()
def SI(): return sys.stdin.readline().strip()
global mod,inf
mod = 10**9 + 7
inf = float('inf')

if __name__ == '__main__':
    examC()
import sys
# sys.setrecursionlimit(100000)
from collections import defaultdict


def input():
    return sys.stdin.readline().strip()


def main():
    h, w, m = [int(i) for i in input().split()]
    d_h = defaultdict(int)
    d_w = defaultdict(int)
    bom = set()
    for _ in range(m):
        h, w = [int(i) for i in input().split()]
        bom.add((h, w))
        d_h[h] += 1
        d_w[w] += 1
    H = sorted(d_h.items(), key=lambda x: -x[1])
    W = sorted(d_w.items(), key=lambda x: -x[1])
    ans = H[0][1] + W[0][1]
    if (H[0][0], W[0][0]) in bom:
        ans -= 1
    try:
        ans2 = H[1][1] + W[0][1]
        if (H[1][0], W[0][0]) in bom:
        ans2 -= 1
    except:
        ans2 = -1
    try:
        ans3 = H[0][1] + W[1][1]
        if (H[0][0], W[1][0]) in bom:
            ans3 -= 1
    except:
        ans3 = -1
    print(max(ans, ans2, ans3))

    return


if __name__ == "__main__":
    main()


### FIXED CODE ###

import sys
# sys.setrecursionlimit(100000)
from collections import defaultdict


def input():
    return sys.stdin.readline().strip()


def main():
    h, w, m = [int(i) for i in input().split()]
    d_h = defaultdict(int)
    d_w = defaultdict(int)
    bom = set()
    for _ in range(m):
        h, w = [int(i) for i in input().split()]
        bom.add((h, w))
        d_h[h] += 1
        d_w[w] += 1
    H = sorted(d_h.items(), key=lambda x: -x[1])
    W = sorted(d_w.items(), key=lambda x: -x[1])
    ans = 0
    for k_h, v_h in H:
        for k_w, v_w in W:
            tmp = v_h + v_w
            if (k_h, k_w) in bom:
                tmp -= 1
                ans = max(tmp, ans)
            else:
                ans = max(tmp, ans)
                break
        else:
            continue
        break

    for k_w, v_w in W:
        for k_h, v_h in H:
            tmp = v_h + v_w
            if (k_h, k_w) in bom:
                tmp -= 1
                ans = max(tmp, ans)
            else:
                ans = max(tmp, ans)
                break
        else:
            continue
        break
    print(ans)


if __name__ == "__main__":
    main()
S = int(input())
h = int(S / 3600)
r1 = int(S % 3600)
m = int(r1 / 60)
r2 = int(r % 60)
s = r2
print(":".join([str(h), str(m), str(s)]), end = "\n")

### FIXED CODE ###

S = int(input())
h = int(S / 3600)
r1 = int(S % 3600)
m = int(r1 / 60)
r2 = int(r1 % 60)
s = r2
print(":".join([str(h), str(m), str(s)]), end = "\n")
n=input()
s=input()
i=0
for c in s:
  if c=='#':
    ans=s[i:].count('.')
    break
  i+=1
print(ans)


### FIXED CODE ###

n=int(input())
s=input()
'''
k=int(input())
a,b,c=map(int,input().split())
a=[int(i) in range(n)]
a=[0]*n
for i in range(n):
    a.append(int(i))
'''
pre=0
b=[0]*n
w=[0]*n

for i in range(n):
    if s[i]=='#':
        cc=1
    else:
        cc=0
    b[i]=pre+cc
    pre+=cc
tb=b[n-1]
for i in range(n):
    w[i]=n-(i+1)-(tb-b[i])

#print(s,b,w)
ans=min(n,w[0])
for i in range(n):
    ans=min(ans,b[i]+w[i])
    
print(ans)
import math
A,B,H,M = map(float,input().split())
vec = 0
c = abs((30.0*H + M*0.5) - (M*6.0))
if c <= 180.0:
    vec = c
else:
    vec = 360.0 - c
ans = math.sqrt(A**2 + B**2 - 2.0*A*B*math.cos(vec))
print(ans)

### FIXED CODE ###

N = int(input())
if N%10==2 or N%10==4 or N%10==5 or N%10==7 or N%10==9:
    print("hon")
elif N%10==0 or N%10==1 or N%10==6 or N%10==8:
    print("pon")
elif N%10==3:
    print("bon")
_,s=open(0);v=10**9;y=-s%v;print(0,0,v,1,y,(s+y)//v)


### FIXED CODE ###

#!/usr/bin/env python3
from collections import defaultdict,deque
from heapq import heappush, heappop
import sys, math, bisect, random, itertools
sys.setrecursionlimit(10**5)
input = sys.stdin.readline
sqrt = math.sqrt
bisect_left = bisect.bisect_left
bisect_right = bisect.bisect_right
def LI(): return list(map(int, input().split()))
def LF(): return list(map(float, input().split()))
def LI_(): return list(map(lambda x: int(x)-1, input().split()))
def II(): return int(input())
def IF(): return float(input())
def LS(): return list(map(list, input().split()))
def S(): return list(input().rstrip())
def IR(n): return [II() for _ in range(n)]
def LIR(n): return [LI() for _ in range(n)]
def FR(n): return [IF() for _ in range(n)]
def LFR(n): return [LI() for _ in range(n)]
def LIR_(n): return [LI_() for _ in range(n)]
def SR(n): return [S() for _ in range(n)]
def LSR(n): return [LS() for _ in range(n)]
mod = 1000000007
inf = float('INF')

#A
def A(s):
    def pri(n, x):
        if n == 0:
            return [0, 0]
        if n == 1:
            return [1, 1]
        if n == 2:
            return [2, 1]
        for i in range(2, int(math.sqrt(n))):
            if n % i == 0 and n // i <= x:
                return [i, n // i]
        return [1, n]
    x = int(math.sqrt(s))
    if s < 10 ** 9:
        print(0, 0, 0, s, 1, 0)
        return
    while 1:
        X = x ** 2
        if X - s < 0:
            x += 1
            continue
        b = pri(X - s, x)
        if b:
            print(0, 0, x, int(b[0]), int(b[1]), x)
            if x > 10 ** 9 or b[0] > 10 ** 9 or b[1] > 10 ** 9:
                print(s)
                quit()
            return
        x += 1
    return

#B
def B():
    return

#C
def C():
    return

#D
def D():
    return

#E
def E():
    return

#F
def F():
    return



#Solve
if __name__ == '__main__':
    A(II())
a=input()
b=int(len(a))
c=0
d=0
for i in range(b):
  if a[2*i]==1:
    c=c+1
  if a[2*1+1]==0:
    c=c+1
for i in range(b):
  if a[2*i]==0:
    d=d+1
  if a[2*1+1]==1:
    d=d+1
if c>d:
  print(d)
else:
  print(c)

### FIXED CODE ###

a=input()
b=int(len(a))
c=0
d=0
if b%2==0:
  for i in range(b//2):
    if a[2*i]=="1":
      c=c+1
    if a[2*i+1]=="0":
      c=c+1
  for i in range(b//2):
    if a[2*i]=="0":
      d=d+1
    if a[2*i+1]=="1":
      d=d+1
  if c>d:
    print(d)
  else:
    print(c)
if b%2==1:
  for i in range(b//2):
    if a[2*i]=="1":
      c=c+1
    if a[2*i+1]=="0":
      c=c+1
  if a[-1]=="1":
    c=c+1
  for i in range(b//2):
    if a[2*i]=="0":
      d=d+1
    if a[2*i+1]=="1":
      d=d+1
  if a[-1]=="0":
    d=d+1
  if c>d:
    print(d)
  else:
    print(c)
a, b = map(int, input().split())

diff = b - a

def func(x):
    if x == 0:
        return 0
    else:
        return x + func(x - 1)
    
print(func(diff) - b)

### FIXED CODE ###

a, b = map(int, input().split())

diff = b - a

def func(x):
    ret = 0
    while x != 0:
        ret += x
        x -= 1
    return ret

print(func(diff) - b)
def f(i):

    if(dp[i] != -1):
        return dp[i]
    if(i==n or i==n-1):
        return 1
    if e[i] != 1:
        return 0
    else:
        dp[i] = f(i+1) + f(i+2)
        return dp[i]


n,m = list(map(int,input().split()))
e = [1] * n
dp = [-1] * n
dp.append(-1)

for i in range(m):
    e[int(input())] = 0
print(f(0) % 1000000007)

### FIXED CODE ###

I=lambda:list(map(int,input().split()))
n,m=I()
b=[int(input()) for i in range(m)]
b=list(set(b))
f={}
for i in b:
    f[i]=1
dp=[0]*(n+1)
dp[0]=1
for i in range(1,n+1):
    if not f.get(i,0):
        dp[i]=(dp[i-1]+dp[i-2])%(10**9+7)
print(dp[n])