Harryxun/stf_run huggingface dataset:
a,b= int(input()).split()
if (a*b)%2=0:
  print("Even")
else :
  print("Odd")

### FIXED CODE ###

a,b= map(int, (input()).split())
if (a*b)%2==0:
  print("Even")
else :
  print("Odd")
N, K = map(int, input().split())

def combination(a, b):
    minb = min(a-b, b)
    r = 1
    for i in range(1, b+1):
        r = r * (a-b+i)/i
    return r

if K == N:
    print(0)
    import sys
    sys.exit()

for i in range(1, K+1):
    if i-1 == 0:
        must = 1
    else:
        must = combination(K-1, i-1)
    left_ball = N-K-i+1
    if left_ball < 0:
        print(0)
        continue
    elif left_ball == 0:
        print(1)
        continue
    can = combination(left_ball+i, i)
    print(int((must*can)%(1000000007)))

### FIXED CODE ###

S = input()
one = 0
two = 0
strs = ["", ""]

for s in S:
    if strs[0] == s:
        one += 1
    elif strs[1] == s:
        two += 1
    elif strs[0] == "":
        strs[0] = s
        one += 1
    elif strs[1] == "":
        strs[1] = s
        two += 1
    else:
        print("No")
        break
    if one > 2 or two > 2:
        print("No")
        break
else:
    print("Yes")
n=int(input())
tree=[[] for _ in range(n)]
for i in range(n-1):
    u,v,w = map(int,input().split())
    tree[u-1].append((v-1,w))
    tree[v-1].append((u-1,w))
    
color=[0]*(n+1)
q = [(-1,0,0)]
while q:
    parent,x,l = q.pop()
    for y in tree[x]:
        if y[0] == parent:
            continue
        q.append((x,*y))
    if l%2==1:
        color[x+1]=1
for i in range(1,n+1):
    print(color[i])

### FIXED CODE ###

#d
n=int(input())
tree=[[] for _ in range(n)]
for i in range(n-1):
    u,v,w = map(int,input().split())
    tree[u-1].append((v-1,w))
    tree[v-1].append((u-1,w))

color=[0]*(n+1)
q = [(-1,0,0)]
while q:
    parent,x,l = q.pop()
    for y in tree[x]:
        if y[0] == parent:
            continue
        q.append((x,y[0],y[1]))
    if l%2==1:
        color[x+1]=1-color[parent+1]
    else:
        color[x+1]=color[parent+1]

for i in range(1,n+1):
    print(color[i])
N = int(input())
A = list(map(int, input().split()))
dic = {}

for i in range(100000):
  dic[i] = A.count(i)
    
Q = int(input())

base = sum(A)

for i in range(Q):
  B, C = map(int, input().split())
  tmp = dic[B]
  dic[B] = 0
  dic[C] += tmp
  base += (C-B)*tmp
  print(base)
  

### FIXED CODE ###

from collections import defaultdict

N = int(input())
A = tuple(map(int, input().split()))
dic = defaultdict(int)

for a in A:
  dic[a] += 1
    
Q = int(input())

base = sum(A)

for i in range(Q):
  B, C = map(int, input().split())
  tmp = dic[B]
  dic[B] = 0
  dic[C] += tmp
  base += (C-B)*tmp
  print(base)
N,K=map(int, input().split())
A =list(map(int,input().split()))
MOD = 10 ** 9 + 7
A=sorted(A)
if N==K:
  ans0 = 1
  for a in A[0:N]:
    ans0 *= a
    ans0 %= MOD
  print(ans0)
  exit()
  
if K%2==1 and A[-1]<0:
  ans0 = 1
  for a in A[N-K:N]:
    ans0 *= a
    ans0 %= MOD
  print(ans0)
  exit()

ansA = 1
for a in A[0:K]:
  ansA *= a
  ansA %= MOD

A=sorted(A, reverse=True)
ansB = 1
for a in A[0:K]:
  ansB *= a
  ansB %= MOD

A=sorted(A, key=lambda x:abs(x), reverse=True)
ansC = 1
for a in A[0:K]:
  ansC *= a
  ansC %= MOD

ansD=1
for a in A[0:K-1]:
  ansD *= a
  ansD %= MOD
B=sorted(A[K-1:N])

if ansD>0:ansD *= B[-1]
elif ansD<0:ansD *=B[0]


if 0 in B :ansE=0
else: ansE=ansD
#print(ansA, ansB, ansC)
print(max(ansA, ansB, ansC, ansD, ansE)%MOD)


### FIXED CODE ###

N=int(input())
l = [list(map(int, input().split())) for l in range(N-1)]
c=0
for i in range(N-1):c+=min(l[i])*(N+1-max(l[i]))
print(N*(N+1)*(N+2)//6-c)
a=input()
if a=1:
  print(1)
elif a%2==0:
  print(0.5)
else:
  print(-(-a//2)/a)
  

### FIXED CODE ###

import math
a=int(input())
b=math.floor(float(a/2))
print(float((a-b)/a))
import numpy as np

n,k = map(int, input().split())

cnt = np.array(list([0]*n))

for i in range(k):
    d = int(input())
    a = np.array([list(map(int, input().split()))])
    if d != n:
        a = np.append(a,[0]*(n-d))
    cnt += a

print(np.count_nonzero(cnt==0))

### FIXED CODE ###

import numpy as np

n,k = map(int, input().split())

cnt = np.array(list([0]*n))

for _ in range(k):
    d = int(input())
    a = np.array(list(map(int, input().split())))
    for i in a:
        cnt[i-1] += 1

print(np.count_nonzero(cnt==0))
from math import gcd
A, B = map(int, input().split())

print(int(A * B / gcd(A, B)))

### FIXED CODE ###

from fractions import gcd
A, B = map(int, input().split())

print(int(A * B / gcd(A, B)))
n, k = map(int, input().split())
l = list(map(int, input().split()))
start = 1
seenl = []
seen = set()
for i in range(k):
	start = l[start-1]
	if start in seen:
		loop_len = len(seenl) - seenl.index(start)
		r = (k-i-1)%loop_len
		goal = seenl[seenl.index(start):][r]
		break
	seenl.append(start)
	seen.add(start)
print(goal)

### FIXED CODE ###

t,s = [str(input()) for _ in range(2)]
if s[:-1] == t:
	print('Yes')
else:
	print('No')
import bisect

N = int(input())
A = list(map(int, input().split()))
A_n = []

for n in range(N):
    A_n.append(A[n]-n)

A_n = sorted(A_n, reverse=True)

can_f = A_n[N//2]
can_s = A_n[N//2 + 1]

ans_f = 0
ans_s = 0

for n in range(N):
    ans_f += abs(A_n[n]-can_f)

for n in range(N):
    ans_s += abs(A_n[n]-can_s)

ans = min(ans_f, ans_s)
print(ans)

### FIXED CODE ###

import bisect

N = int(input())
A = list(map(int, input().split()))
A_n = []

for n in range(N):
    A_n.append(A[n]-(n+1))

A_n = sorted(A_n, reverse=True)

can_f = A_n[N//2]
ans_f = 0
for n in range(N):
    ans_f += abs(A_n[n]-can_f)


if N > 1:
    ans_s = 0
    can_s = A_n[N//2+1]
    for n in range(N):
        ans_s += abs(A_n[n]-can_s)
else:
    ans_s = 10**10

ans = min(ans_f, ans_s)
print(ans)
import bisect
import heapq
N,Q = list(map(int,input().split(" ")))

hitos = []
ans = [-1] * Q
queries =[]
jump = [-1] * Q


for i in range(N):
    S,T,X =list(map(int,input().split(" ")))
    lt = S -X -0.5
    rt = T -X -0.5
    queries.append((lt,rt,X)) #-1 → 挿入クエリ lが時間、-1がクエリの種類、Xが場所


queries.sort(key=lambda x:x[2])



for i in range(Q):
    t = int(input())
    hitos.append(t)
for l,r,x in queries:
     lind  = bisect.bisect_left(hitos,l)
     rind  = bisect.bisect_left(hitos,r)
     while lind < rind:
         if ans[lind] == -1:
            ans[lind] = x
            jump[lind] = rind
            lind += 1
         else:
             lind = jump[lind]
print("\n".join(ans))

### FIXED CODE ###

import bisect
import heapq
import sys
N,Q = [int(x) for x in sys.stdin.readline().split()]

hitos = []
ans = [-1] * Q
queries =[]
jump = [-1] * Q



queries = [[int(x) for x in sys.stdin.readline().split()] for i in range(N)]
hitos = [int(sys.stdin.readline()) for i in range(Q)]


# for i in range(N):
    # S,T,X =list(map(int,input().split(" ")))
    # lt = S -X -0.5
    # rt = T -X -0.5
    # queries.append([lt,rt,X]) #-1 → 挿入クエリ lが時間、-1がクエリの種類、Xが場所


queries.sort(key=lambda x:x[2])





for l,r,x in queries:
     lind  = bisect.bisect_left(hitos,l-x - 0.5)
     rind  = bisect.bisect_left(hitos,r -x - 0.5)
     while lind < rind:
         if ans[lind] == -1:
            ans[lind] = x
            jump[lind] = rind
            lind += 1
         else:
             temp = jump[lind]
             jump[lind] = rind
             lind = temp

for i  in ans:
    print(i)
N=imt(input())
for i in range(1,10):
  if N%i==0:
    if N/i<10:
      print('Yes')
      break
else:
  print('No')
    



### FIXED CODE ###

N=int(input())
for i in range(1,10):
  if N%i==0:
    if N/i<10:
      print('Yes')
      break
else:
  print('No')
n = int(input())
lis = map(long,input().split())
m = 0
b = True
while(b):
  for index,l in enumerate(lis):
    if l % 2 == 1:
      b = False
      m -= 1
      break
    else:
      lis[index] = l // 2
  m += 1
print(m)


### FIXED CODE ###

n = int(input())
lis = list(map(int,input().split()))
m = 0
b = True
while(b):
  for index,l in enumerate(lis):
    if l % 2 == 1:
      b = False
      m -= 1
      break
    else:
      lis[index] = l / 2
  m += 1
print(m)
line=input()
length=len(line)
while 1:
  line_1=line[:len(line)//2]
  line_2=[len(line)//2+1:len(line)]
  if line_1.count(1)>line_1.count(0):
    line_1.replace('1','')
    line_2.replace('0','')
  else:
    line_2.replace('1','')
    line_1.replace('0','')
  line=line_1+line_2
print(length-len(line))

### FIXED CODE ###

s=str(input())
if s.count('1')>s.count('0'):
    print(s.count('0')*2)
else:
    print(s.count('1')*2)
but=map(int,input())
but = sorted(but)
res = but[-1]
but = sorted(but)
res = but[-1]
print(res)


### FIXED CODE ###


but=list(map(int,input().split()))
but = sorted(but)
res = but[-1]
but[-1] -= 1
but = sorted(but)
res += but[-1]
print(res)
N = int(input())

A = raw_input().split(' ')

total = 0
B = [0]
dic = {}

for i in range(N):
    total += int(A[i])
    B.append(total)

for b in B:
    if b in dic:
        dic[b] +=1
    else:
        dic[b] = 1
def C(n):
    return int(n*(n-1)/2)

ans = 0;

for k,v in dic.items():
    ans += C(v)

print(ans)


### FIXED CODE ###

N = int(input())

A = input().split(' ')

total = 0
B = [0]
dic = {}

for i in range(N):
    total += int(A[i])
    B.append(total)

for b in B:
    if b in dic:
        dic[b] +=1
    else:
        dic[b] = 1
def C(n):
    return int(n*(n-1)/2)

ans = 0;

for k,v in dic.items():
    ans += C(v)

print(ans)
import math
ans=-1
nums=input().split(" ")
t8,t10=int(nums[0]),int(nums[1])
value_f=max(math.ceil(t8*100/8),math.ceil(t10*10))
while value_f>=0:
	tax8,tax10=math.floor(value_f*0.08),math.floor(value_f*0.1)
	if tax8==t8 and tax10==t10:
		ans=value_f
	elif tax8<t8 or tax10<t10:
		print(ans)
		break
	value_f-=1

### FIXED CODE ###

letter=input()
if "A" not in letter:
  print("No")
elif "B" not in letter:
  print("No")
else:
  print("Yes")
n = int(input())
h = list(map(int, input().split()))
ans = 1
maxH = h[0]

for i in range(1, n):
    if h[i] >= maxH:
	ans += 1
	maxH = h[i]

print(ans)


### FIXED CODE ###

n = int(input())
h = list(map(int, input().split()))
ans = 1
maxH = h[0]

for i in range(1, n):
    if h[i] >= maxH:
        ans += 1
        maxH = h[i]

print(ans)
#coding:utf-8
n, d = map(int, input().split())

flag = [0] * n
people = 0

#端を埋める
for i in range(0,2*d):
    flag[i] = 1

if sum(flag) != n:
    people += 1

for i in range(n-2*d-1, n):
    flag[i] = 1

if sum(flag) != n:
    people += 1

#print(flag)

for i in range(2*d, n-2*d):
    if flag[i] == 0:
        people += 1
        #print(i)
        for j in range(i, i+d+1):
            if j > n-d:
                break 
            else:
                flag[j] = 1
        #print(flag)


#print(flag)
print(people)


### FIXED CODE ###

#coding:utf-8
n, d = map(int, input().split())

#監視員は2D+1本の木を監視する
#最小の監視員はN/2D+1 の切り上げ
print(-(-n // (2*d + 1)))
from sys import exit

time = [int(input()), int(input()), int(input()), int(input()), int(input())]

total = 0
loss = []

for t in time:
    total += t
    if t % 10 != 0:
        loss.append(10 - t % 10)

total += sum(loss) - max(loss)

print(total)


### FIXED CODE ###

from sys import exit

time = [int(input()), int(input()), int(input()), int(input()), int(input())]

total = 0
loss = []

for t in time:
    total += t
    if t % 10 != 0:
        loss.append(10 - t % 10)

if loss:
    total += sum(loss) - max(loss)

print(total)
A,B,C,K = input().split()
a = int(A)
b = int(B)
k = int(K)

B_number = 0
C_number = 0

A_number = min(a,k)
k1 = k - a
if k1 > 0:
    B_number = min(b,k1)
    k2 = k1 - b
    if k2 > 0:
        C_number = min(c,k2)

print(A_number-C_number)

### FIXED CODE ###

A,B,C,K = input().split()
a = int(A)
b = int(B)
c = int(C)
k = int(K)

B_number = 0
C_number = 0

A_number = min(a,k)
k1 = k - a
if k1 > 0:
    B_number = min(b,k1)
    k2 = k1 - b
    if k2 > 0:
        C_number = min(c,k2)

print(A_number-C_number)
import math
A,B,K = map(int,input().split())
r = []

g = math.gcd(A,B)
for i in range(1,g+1):
  if g%i == 0:
    r.append(i)
    
print(r[K-1])

### FIXED CODE ###

from fractions import gcd
A,B,K = map(int,input().split())
r = []

g = gcd(A,B)
for i in range(1,g+1):
  if g%i == 0:
    r.append(i)
    
print(r[-K])
import sys
n,w=map(int,input().split())
st=[[a for s in b.strip()] for b in sys.stdin]
count=0
for i in range(1,n-2):
    for j in range(1,w-2):
        if st[i][j]=="#":
            count+=1
            if st[i][j]!=st[i-1][j] and st[i][j]!=st[i][j-1] and st[i][j+1]!=st[i][j] and st[i][j]!=st[i+1][j]:
                print("No")
                exit()
if st[0][0]=="#" and st[0][0]!=st[0][1] and st[1][0]!=st[0][0]:
    print("No")
    exit()

if st[0][w-1]=="#" and st[0][0]!=st[0][w-2] and st[1][w-1]!=st[0][w-1]:
    print("No")
    exit()

if st[n-1][w-1]=="#" and st[n-1][w-1]!=st[n-1][w-2] and st[n-1][w-1]!=st[n-2][w-1]:
    print("No")
    exit()
if st[n-1][0]=="#" and st[n-1][0]!=st[n-1][1] and st[n-2][0]!=st[n-1][0]:
    print("No")
    exit()
print("Yes")


### FIXED CODE ###

n,w=map(int,input().split())
st=[]
for i in range(n):
    st.append(list(input())) #0~n-1までの列ができる
if n==w==1:
    print("Yes")
    exit()

for i in range(1,n-1):
    for j in range(1,w-1): #i,jに1足しても引いても範囲内だから安心！
        if st[i][j]=="#":
            if st[i+1][j]=="." and st[i][j-1]=="." and st[i][j+1]=="." and st[i-1][j]==".":
                print("No")
                exit()
        

print("Yes")
n = int(input())
if n > 1:
    ans = n*(n-1)/2
else:
    ans = 0
print(ans)

### FIXED CODE ###

s = input()
t = input()
c = 0
for i in range(3):
    if s[i] == t[i]:
        c+=1
print(c)
import math
import bisect
import heapq
from fractions import gcd #math in python 3.7
from collections import deque

n = int(input())

h = list(map(int,input().split()))

d = [math.inf] * n
d[0] = 0
d[1] = abs(h[0] - h[1])

for i in range(2,n):
    d[i] = min(d[i-1] + abs(h[i-1]-h[i]), d[i-2] + abs(h[i-2]-h[i]))

print(d[n-1])


### FIXED CODE ###

import math
import bisect
import heapq
from collections import deque

n = int(input())

h = list(map(int, input().split()))

d = [float('inf')] * n
d[0] = 0
d[1] = abs(h[0] - h[1])

for i in range(2,n):
    d[i] = min(d[i-1] + abs(h[i-1]-h[i]), d[i-2] + abs(h[i-2]-h[i]))

print(d[n-1])
from collections import deque

def process_command(dll, commands):
    for cmd in commands:
        # print(cmd)
        if cmd.startswith('insert') or cmd.startswith('delete '):
            t = cmd.split(' ')
            cmd = t[0]
            num_str = t[1]
        if cmd == 'insert':
            dll.appendleft(int(num_str))
        elif cmd == 'delete':
            temp = []
            result = dll.popleft()
            while result != int(num_str):
                temp.append(result)
                result = dll.popleft()
            temp = temp[::-1]
            dll.extendleft(temp)
        elif cmd == 'deleteFirst':
            dll.popleft()
        elif cmd == 'deleteLast':
            dll.pop()
        # print(dll)
        # print('=' * 64)


if __name__ == '__main__':
    # ??????????????\???
    commands = []
    num = int(input())
    for i in range(num):
        commands.append(input())

    # ??????
    dll = deque()
    process_command(dll, commands)

    # ???????????????
    # dll.reverse()
    print('{0}'.format(' '.join(map(str, dll))))

### FIXED CODE ###

from collections import deque

def process_command(dll, commands):
    # line_count = 1
    for cmd in commands:
        # print('processing line: {0}'.format(line_count))
        # line_count += 1
        # print(cmd)
        try:
            cmd, num_str = cmd.split()
        except ValueError:
            pass
        # if cmd.startswith('insert') or cmd.startswith('delete '):
        #     t = cmd.split(' ')
        #     cmd = t[0]
        #     num_str = t[1]
        if cmd == 'insert':
            dll.appendleft(int(num_str))
        elif cmd == 'delete':
            # deque.index() ????????¨??§???????????? python3.5??\???????????§???????????§??¢???
            if int(num_str) in dll:  # ?????????????????????????????¨???????????´?????????????????????????????????
                temp = []
                result = dll.popleft()
                while result != int(num_str):
                    temp.append(result)
                    result = dll.popleft()
                temp = temp[::-1]
                dll.extendleft(temp)
        elif cmd == 'deleteFirst':
            dll.popleft()
        elif cmd == 'deleteLast':
            dll.pop()
        # print(dll)
        # print('=' * 64)


if __name__ == '__main__':
    # ??????????????\???
    commands = []
    num = int(input())
    commands = [input() for i in range(num)]

    # ??????
    dll = deque()
    process_command(dll, commands)

    # ???????????????
    print('{0}'.format(' '.join(map(str, dll))))
s, t = map(str, input().split())
a. b = map(int, input().split())
u = input()

if s == u:
  print("{} {}".format(a-1, b))
else:
  print("{} {}".format(a, b-1))


### FIXED CODE ###

s, t = input().split()
a, b = map(int, input().split())
u = input()

if s == u:
  print("{} {}".format(a-1, b))
else:
  print("{} {}".format(a, b-1))
ball_num = int(input())
num_data = list(map(int, input().split()))

ans = 0

def check_beki(num1, num2):
    data = num1 + num2
    while 1:
        data1 = data % 2
        data = int(data / 2)
        if data1 == 1:
            return 0
        elif num1 + num2 >= 1 and data == 1:
            return 1

def check_ans(ans_list, tasu_flg):
    global ans
    ans_kari = 0
    for i in range(len(ans_list)):
        if check_beki(ans_list[i], 0) and tasu_flg[i] == 1:
            ans_kari += 1
    if ans_kari > ans:
        ans = ans_kari

def check(index, ans_list_ori, tasu_flg_ori):
    global ball_num, num_data
    ans_list = ans_list_ori.copy()
    tasu_flg = tasu_flg_ori.copy()

    # if len(ans_list) >= tree_num:
    #     return

    # print(check_beki(3, 5))

    if index < ball_num:
        for j in range(len(ans_list)):
            # print(ans_list[j], num_data[index])
            if check_beki(ans_list[j], num_data[index]) and tasu_flg[j] == 0:
                # print('yyy')
                ans_list[j] += num_data[index]
                tasu_flg[j] = 1
                check(index+1, ans_list, tasu_flg)
                tasu_flg[j] = 0
                ans_list[j] -= num_data[index]
            # 新しく木を使う場合
            ans_list.append(num_data[index])
            tasu_flg.append(0)
            check(index+1, ans_list, tasu_flg)
            tasu_flg.pop(-1)
            ans_list.pop(-1)
    else:
        # 以前よりも最少の気で作れたら最小値の更新
        check_ans(ans_list, tasu_flg)


def main():
    global num_data
    check(1, [num_data[0]], [0])

    print(ans)



if __name__ == '__main__':
    main()

### FIXED CODE ###

data = list(input())

count = 0
# i = 0
# while 1:
count_b = 0
for i in range(len(data)):
    # print(i)
    if data[i] == 'W':
        count += count_b
        # count += 1
        # data[i], data[i+1] = 'B', 'W'
        # break
    else:
        count_b += 1
    # else:
    #     break
print(count)
from math import factorial as fac
N,M = map( int, input().split() )
break_list = []
for i in range(M):
    break_list.append( int( input() ) )
break_list.append( N + 1 )
start = 0
ans = 1
k = 1
for i in break_list:
    sum_c = 0
    end = i - 1
    if start > end:
        k = -1
    step_1 = end - start
    step_2 = int( ( end - start ) / 2 )
    for j in range(step_2 + 1):
        k = step_1 - 2 * j
        sum_c += fac(k + j) // ( fac(j) * fac(k) )
    ans *= sum_c
    start = i + 1
    
if k == 1:
    print( ans % 1000000007 )
else:
    print(0)

### FIXED CODE ###

N,M = map( int, input().split() )
break_list = []
for i in range(M):
    break_list.append( int( input() ) )

break_list.append(-10)
t = 0
fib = [0] * (N + 1)
if break_list[0] == 1:
    fib[1] = 0
    t += 1
else:
    fib[1] = 1
    
fib[0] = 1

for i in range(N - 1):
    if ( i + 2 ) ==  break_list[t]:
        fib[i + 2] = 0
        t += 1
    else:
        fib[i + 2] = fib[i] + fib[i + 1]
 
if N == 1:
    print( fib[1] )
else:
    print( fib[i+2] %  1000000007 )
N = int(input())
h = list(map(int, input().split()))
def cost(i):
	if i == 0:
		return 0
	elif i == 1:
		return abs(h[1] - h[0])
	else:
		return min(cost(i - 1) + abs(h[i] - h[i - 1]), cost(i - 2) + abs(h[i] - h[i - 2]))
print(cost(N - 1))


### FIXED CODE ###

N = int(input())
h = list(map(int, input().split()))
dp = [float("inf") for _ in range(N)]
dp[0] = 0
for i in range(1, N):
	dp[i] = min(dp[i], dp[i - 1] + abs(h[i] - h[i - 1]))
	if i > 1:
		dp[i] = min(dp[i], dp[i - 2] + abs(h[i] - h[i - 2]))
print(dp[N - 1])
H,W = map(int, input().split())
C = [0 for _ in range(W)]

for i in range(H):
	C[i] = input()

for i in range(H):
	print(C[i])
	print(C[i])

### FIXED CODE ###

H,W = map(int, input().split())
C = [0 for _ in range(H)]

for i in range(H):
	C[i] = input()

for i in range(H):
	print(C[i])
	print(C[i])
n=int(input())
import math

if n%2==1:
    print(0)
else:
    m = math.floor( math.log(n,5) )
    print( sum(n//(2*5**i) for i in range(1,m+1)) )

### FIXED CODE ###

n=int(input())
import math

if n==0:
    print(0)

elif n%2==1:
    print(0)
else:
    m = math.floor( math.log(n,5) )
    print( sum(n//(2*5**i) for i in range(1,m+1)) )
n,k = map(int,input().split())
lis = [int(e) for i in input().split()]
c = 0
for i in lis:
  if i >= k:
    c += 1
print(c)

### FIXED CODE ###

n,k = map(int,input().split())
lis = [int(i) for i in input().split()]

c = 0
for i in lis:
        if i >= k:
            c += 1
print(c)
H, W = map(int, input().split())
s = ['.' + input() +'.' for _ in range(H)]
s = ['.'] * (W + 2) s + ['.'] * (W + 2)
flag = True
for h in range(1, H + 1):
    for w in range(1, W + 1):
        if (s[h][w] == '#' and s[h - 1][w] == '.' and s[h + 1][w] == '.'
               and s[h][w - 1] == '.' and s[h][w + 1] == '.'):
            flag = False
                
print('Yes' if flag else 'No')


### FIXED CODE ###

H, W = map(int, input().split())
s = ['.' + input() +'.' for _ in range(H)]
s = ['.' * (W + 2)] + s + ['.' * (W + 2)]
flag = True
for h in range(1, H + 1):
    for w in range(1, W + 1):
        if (s[h][w] == '#' and (not '#' in [s[h - 1][w], s[h + 1][w], s[h][w - 1], s[h][w + 1]])):
            flag = False
                
print('Yes' if flag else 'No')
from collections import defaultdict
N, M = map(int, input().split())
cities = []
prefs = defaultdict(list)
for i in range(M):
    city = tuple(map(int, input().split()))
    cities.append(city)
    prefs[city[0]].append(city[1])

for pref in prefs.values():
    pref.sort()
for c in cities:
    x = prefs[c[0]].index(c[1]) + 1
    print(f'{c[0]:06}{x:06}')


### FIXED CODE ###

from collections import defaultdict

N, M = map(int, input().split())
years = defaultdict(list)
Q = []
for i in range(M):
    P, Y = map(int, input().split())
    years[P].append(Y)
    Q.append((P, Y))

rev_list = {}
for P, Y in years.items():
    Y.sort()
    rev_list[P] = {}
    for i in range(len(Y)):
        rev_list[P][Y[i]] = i + 1

for q in Q:
    print('{:06}{:06}'.format(q[0], rev_list[q[0]][q[1]]))