Harryxun/stf_run huggingface dataset:
#!/usr/bin/env pypy3
import collections
import itertools as it
import math
#import numpy as np
 
n  = int(input())
#  = int(input())
#  = map(int, input().split())
#  = list(map(int, input().split()))i
xy = []
for _ in range(n):
    a = int(input())
    xy.append([tuple(map(int, input().split())) for _ in range(a)])
#
# c = collections.Counter()

for i in range(2 ** n): # 嘘つき・正直者の総当り
    is_honest = [not(bool(int(s))) for s in list(f'{i:015b}'[-n:])]
    is_ok = True
    for i, h in enumerate(list(is_honest)): # 人の総当り
        for x, y in xy[i]: # 証言の総当り
            if is_honest[i] == False:
                continue

            x = x - 1
            v = bool(int(y))
            
            #print(is_honest[x], bool(y), v, )
            if is_honest[x] == v:
                pass
            else:
                is_ok = False
    
    if is_ok:
        i#print(is_honest)
        print(sum(is_honest))
        break


### FIXED CODE ###

#!/usr/bin/env pypy3
import collections
import itertools as it
import math
#import numpy as np
 
n  = int(input())
#  = int(input())
#  = map(int, input().split())
#  = list(map(int, input().split()))i
xy = []
for _ in range(n):
    a = int(input())
    xy.append([tuple(map(int, input().split())) for _ in range(a)])
#
# c = collections.Counter()

for i in range(2 ** n): # 嘘つき・正直者の総当り
    is_honest = [not(bool(int(s))) for s in list('{:015b}'.format(i)[-n:])]
    is_ok = True
    for i, h in enumerate(list(is_honest)): # 人の総当り
        for x, y in xy[i]: # 証言の総当り
            if is_honest[i] == False:
                continue

            x = x - 1
            v = bool(int(y))
            
            #print(is_honest[x], bool(y), v, )
            if is_honest[x] == v:
                pass
            else:
                is_ok = False
    
    if is_ok:
        i#print(is_honest)
        print(sum(is_honest))
        break
import math
a,b=[int(i) for i in input().split()]
def lcm(x, y):
    return (x * y) // math.gcd(x, y)

  
  
m=lcm(a, b)  
print(m)

### FIXED CODE ###

A, B=[int(i) for i in input().split()]

def gcd(a, b):
	while b:
		a, b = b, a % b
	return a
def lcm(a, b):
	return a * b // gcd (a, b)
  
print(lcm(A,B))
L=[cha[i] for i in int().split()]
sorted.L
if L=='abc':
  print('Yes')
else :
  print('No')

### FIXED CODE ###

L=set(input())
if len(L)==3:
  print('Yes')
else :
  print('No')
n = int(input())
k = int(input())
x = map(int,input().split())
ans = 0
for i in range(n):
    ans += min(abs(x[i]-k),x[i])
print(ans*2)


### FIXED CODE ###

n = int(input())
k = int(input())
x = list(map(int,input().split()))
ans = 0
for i in range(n):
    ans += min(abs(x[i]-k),x[i])
print(ans*2)
n = int(input())
a = list(map(int, input().split()))

diff_list = [a[i] - a[i - 1]  for i in range(1, len(a))]
print(diff_list)

diff = a[1] - a[0]
count = 1
for i in range(2, len(a)):
    if a[i] - a[i - 1] != 1:
        count += 1
    elif a[i] - a[i - 1] == 1:
        if diff != 1:
            count += 1
        diff = 1
    elif a[i] - a[i - 1] == -1:
        if diff != -1:
            count += 1
        diff = -1

print(count)

### FIXED CODE ###

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

flg_inc = False
flg_dec = False

count = 1
for i in range(1, len(a)):
    if a[i] < a[i - 1]:
        flg_dec = True
        if flg_inc:
            count += 1
            flg_inc = False
            flg_dec = False
    elif a[i] > a[i - 1]:
        flg_inc = True
        if flg_dec:
            count += 1
            flg_inc = False
            flg_dec = False

print(count)
A, B, C, K = map(int, input().split())
if A >= K:
  print(K)
elif A+B >= K:
  print(A)
else:
  print(A-(K-A-B))

### FIXED CODE ###

s=str(input())
t=str(input())
if s == t[:-1] :
  print("Yes")
else:
  print("No")
S = int(input())
flag = True
for i in range(3):
  if S[i] == S[i+1]:
    flag = False
if flag == True:
  print("Good")
else:
  print("Bad")

### FIXED CODE ###

S = input()
flag = True
for i in range(3):
  if S[i] == S[i+1]:
    flag = False
if flag == True:
  print("Good")
else:
  print("Bad")
n = int(input())

divisors =[]
for i in range(1,n+1):
    if n%i == 0:
        divisors.append(i)
x=len(divisors)

gojyu=[]
for j in range(x-1):
    for k in range(x-1):
        if divisors[j]*divisors[k] == n:
            gojyu.append(divisors[j]+divisors[k]-2)
print(min(gojyu))


### FIXED CODE ###

n = int(input())
divisors =[]
for i in range(1,int(n**0.5)+1):
    if n%i == 0:
        divisors.append(i)
gojyu=[]
for j in divisors:
    kyori = j + n/j - 2
    gojyu.append(int(kyori))
print(min(gojyu))
N = int(input())
l = [input() for _ in range(N)]
ch = {'AC': 0, 'WA':0, 'TLE':0, 'RE':0}

for key, value in ch.items():
  ch[key] = l.count(key)

for key, value in ch.items():
  print(key + ' x ' + value)

### FIXED CODE ###

N = int(input())
l = [input() for _ in range(N)]
ch = {'AC': 0, 'WA':0, 'TLE':0, 'RE':0}

for key, value in ch.items():
  ch[key] = l.count(key)

for key, value in ch.items():
  print(key + ' x ' + str(value))
z = list(map(int, input().split()))
x = z[0]
if z[1] == 0:
  print(x)
else:
  p = list(map(int, input().split()))
  l = []
  for i in range(-101, 102):
    l.append(i)
  for i in p:
    l.remove(i)
  t = 200
  for i in l:
    e = abs(x-i)
    if e >= t:
      break
    t = e
    ans = i
  print(ans)


### FIXED CODE ###

z = list(map(int, input().split()))
x = z[0]
if z[1] == 0:
  print(x)
else:
  p = list(map(int, input().split()))
  l = []
  for i in range(-1, 102):
    l.append(i)
  for i in p:
    l.remove(i)
  t = 200
  for i in l:
    e = abs(x-i)
    if e >= t:
      break
    t = e
    ans = i
  print(ans)
L, R = map(int, input().split())
if R - L >= 2019 :
    print(0)

else :
    t = []
    for i in range(L, R):
        for j in range(i+1, R+1) :
            list.append((i*j) % 2019)
    print(min(t))


### FIXED CODE ###

L, R = map(int, input().split())
if R - L >= 2019 :
    print(0)

else :
    t = []
    for i in range(L, R):
        for j in range(i + 1, R + 1) :
            t.append((i * j) % 2019)
    print(min(t))
n = input()
p = [int(input()) for _ in range(n)]
print(p.pop()//2 + sum(p))

### FIXED CODE ###

N = int(input())
P = [int(input()) for _ in range(N)]
P.sort()
print(P[-1]//2 + sum(P[:N-1]))
import sys
stdin = sys.stdin

ni = lambda: int(ns())
na = lambda: list(map(int, stdin.readline().split()))
nn = lambda: list(stdin.readline().split())
ns = lambda: stdin.readline().rstrip()

n = ni()
a = na()

import numpy as np
a = list(np.cumsum(a))

import bisect

ma = bisect.bisect_right(a,a[-1]/2)+1
mi = bisect.bisect_left(a,a[-1]/2)-1

ma = ma if ma < n-1 else n-2
mi = mi if mi > 0 else 0
mid = mi+1 if n>2 else mi

print(min(abs(a[-1]-a[ma]*2), abs(a[-1]-a[mi]*2), abs(a[-1]-a[mid]*2)))

### FIXED CODE ###

import sys
stdin = sys.stdin

ni = lambda: int(ns())
na = lambda: list(map(int, stdin.readline().split()))
nn = lambda: list(stdin.readline().split())
ns = lambda: stdin.readline().rstrip()

n = ni()
a = na()

import numpy as np
a = list(np.cumsum(a))

ans = 100000000000000000

for i in range(n-1):
    ans = min(ans, abs(a[-1]-a[i]*2))

print(ans)
#! /usr/bin/env python3
# -*- coding: utf-8 -*-

A, B, C = [int(x) for x in input().split()]

if B >= C:
    as = C + B
elif (C-B) >= A:
    as = B + A + C
else:
    as = C + B

print(as)

### FIXED CODE ###

#! /usr/bin/env python3
# -*- coding: utf-8 -*-

A, B, C = [int(x) for x in input().split()]

if B >= C-1:
    answer = C + B
elif (B+A) >= C-1:
    answer = B + C
else:
    answer = 2*B + A+1

print(answer)
A=int(input())
B=list(input())
D=B[0]
E=B[1]
C=[]
for i in range(A):
  C=D[i]
  C=E[i]
print(C)


### FIXED CODE ###

A=int(input())
B,C=input().split()
D=''
for i in range(A):
  D+=B[i]
  D+=C[i]
print(D)
N = input()
A = [int(x) for x in input().split()]

answer = 0
for i in range(1,N):
  if A[i] == A[i-1]:
    A[i] = -1
    answer += 1
print(answer)

### FIXED CODE ###

N = int(input())
A = [int(x) for x in input().split()]

answer = 0
for i in range(1,N):
  if A[i] == A[i-1]:
    A[i] = -1
    answer += 1
print(answer)
from sys import stdin

N, M, *A = map(int, stdin.read().split())
req = {1: 2,
       2: 5,
       3: 5,
       4: 4,
       5: 5,
       6: 6,
       7: 3,
       8: 7,
       9: 6}

num = sorted([(a, req[a]) for a in A], key=lambda x: x[1])
k_min, n_min = num[0]
gt = sorted([(k, n-n_min) for k, n in num if k > k_min],
            key=lambda x: x[0], reverse=True)
lt = sorted([(k, n-n_min) for k, n in num if k < k_min],
            key=lambda x: x[0])
order = N // n_min
sum_rem = N - n_min*order

lst = []
for k, n in gt:
    if sum_rem == 0:
        continue
    m = sum_rem // n
    lst.extend([k]*m)
    sum_rem -= n*m
for k, n in lt:
    if sum_rem == 0:
        continue
    m = sum_rem // n
    lst.extend([k]*m)
    sum_rem -= n*m
lst.extend([k_min]*(order-len(lst)))


print(''.join(map(str, sorted(lst, reverse=True))))

### FIXED CODE ###

from sys import stdin

N, M, *A = map(int, stdin.read().split())
req = {1: 2,
       2: 5,
       3: 5,
       4: 4,
       5: 5,
       6: 6,
       7: 3,
       8: 7,
       9: 6}

B = sorted([(a, req[a]) for a in A], key=lambda x: x[0], reverse=True)
a_min, n_min = min(B, key=lambda x: x[1])
g = [(a, n-n_min) for a, n in B if a > a_min and n > n_min]
l = [(a, n-n_min) for a, n in B if a < a_min and n > n_min]
l.sort(key=lambda x: x[1], reverse=True)
C = g + l

def dp(rem, C):
    ret = None
    if rem == 0:
        ret = []
    elif rem > 0:
        for i in range(len(C)):
            a, m = C[i]
            nxt = dp(rem-m, C[i:])
            if nxt is not None:
                ret = [a] + nxt
                break
    return ret


i = 0
while True:
    quo = N // n_min - i
    rem = N % n_min + i * n_min
    lst = dp(rem, C)
    if lst is not None:
        lst = sorted(lst + [a_min] * (quo-len(lst)), reverse=True)
        print(''.join(map(str, lst)))
        break
    i += 1
import math

x1,y1 = 0, 0

def fact(n):
    b = 2
    i = 0
    fct = []
    while (b * b <= n) & (i<=5):
        while n % b == 0:
            n //= b
            fct.append(b)
        b = b + 1
        i += 1
    if n > 1:
        fct.append(n)
    return fct

S = int(input())

list1 = sorted(fact(S))#おおきいのが最後

if int(list1[-1]) <= 10**9:
  f = list1[::-1]
  st = 1
  i = 0
  while (st <= 10**9)&(i<len(list1)):
    st *= list1[i]
    i += 1
  x2,y2 = st,0
  x3,y3 = 0,S//st

else:
  list2 = []
  list2.append(int(S//list1[-1]))
  while list1[-1] > 10**9:
    dash = list1[-1]
    list1 = fact(dash + 1)
    list2.append(int((dash+1)//list1[-1]))

  sum2 = 0
  sum4 = 1
  for i in range(len(list2)-1):
    sum4 *= list2[i] 
    sum2 += sum4

  y2 = fact(sum2)[-1]
    
  b = list1[-1]
  x2 = b
  x3 = sum2//y2
  y3 = (S + x3*y2)//b
  s = x2*y3 - x3*y2
  
print(int(x1),int(y1),int(x2),int(y2),int(x3),int(y3))

### FIXED CODE ###

S = int(input())

if S == 10**18:
  x1,y1 = 0,0
  x2 = 10**9
  y3 = 10**9
  x3 = 0
  y2 = 0

else:
  x1, y1 = 0,0

#|x2y3-x3y2|=S

  x2 = 10**9
  y2 = 1

#|10**9y3-x3|= s

  y3 = (S//(10**9)) + 1
  x3 = (10**9)*y3 - S

print(int(x1),int(y1),int(x2),int(y2),int(x3),int(y3))
N = int(input())
A = [[int(i) for i in input().split()] for j in range(2)]
count = 0
Max = 0

for i in range(N):
    for j in range(i+1):
        count += A[0][j]
    for j in range(N-i):
        count += A[1][i+j]
    Max = max(Max, count
    count = 0

print(Max)


### FIXED CODE ###

N = int(input())
A = [[int(i) for i in input().split()] for j in range(2)]
count = 0
Max = 0

for i in range(N):
    for j in range(i+1):
        count += A[0][j]
    for j in range(N-i):
        count += A[1][i+j]
    Max = max(Max, count)
    count = 0

print(Max)
from copy import *
n,m=map(int,input().split())
t=int(m/n)
while True:
    if m%t==0:
        if t*n<=m:
            print(t)
            exit()
        else:
            t-=1
    else:
        t-=1

### FIXED CODE ###

n=int(input())
z=[]
aa=[]
for i in range(n):
     z.append(list(map(int,input().split())))
for cx in range(101):
    for cy in range(101):
        ans=set()
        for i in range(n):
            x,y,h=z[i][0],z[i][1],z[i][2]
            if h!=0:
                tmp=h+abs(x-cx)+abs(y-cy)
                ans.add(tmp)
        if len(ans)==1:
            ans=list(ans)
            aa.append((ans[0],cx,cy))

for a,cx,cy in aa:
    flg=True
    for i in range(n):
        x,y,h=z[i][0],z[i][1],z[i][2]
        if h!=max(a-abs(x-cx)-abs(y-cy),0):
                flg=False
    if flg:
        print(cx,cy,a)
        exit()
S = input()
res = int(S[0:3])
for i in range(len(S)-3):
  if abs(res - 753) > abs(int(S[i:i+3])-753):
    res = S[i:i+3]
print(res)
  

### FIXED CODE ###

S = input()
c = ''
L = []
i = 0
j = 3
min = 10**9
while j<=len(S):
    c = S[i:j]
    L.append(int(c))
    i += 1
    j += 1
for element in L:
    if abs(753-element) < min:
        min = abs(753-element)
print(min)
import sys
n,m = map(int,input().split())
ls = [list(map(int,input().split())) for _ in range(m)]
ls.sort()
ans = []
di=[[] for _ in range(n)]
if n == 1:
    print(ls[0][1])
    sys.exit()
for i in range(m):
    di[ls[i][0]-1].append(ls[i][1])
for j in range(len(di)):
    if di[j] != []:
        di[j] = list(set(di[j]))
        if len(di[j]) > 1:
            print(-1)
            sys.exit()
for l in range(n):
    if l == 0:
        if di[l] == []:
            ans.append(str(1))
        elif 0 in di[l]:
            print(-1)
            sys.exit()
        else:
            ans.append(str(di[l][0]))
    else:
        if di[l] == []:
            ans.append(str(0))
        else:
            ans.append(str(di[l][0]))
print("".join(ans))

    
    
    

### FIXED CODE ###

import sys
n,m = map(int,input().split())
inf = float("inf")
ls = [-inf]*n
for i in range(m):
    a,b = map(int,input().split())
    if ls[a-1] == -inf:
        ls[a-1] = b
    elif ls[a-1] != b:
        print(-1)
        sys.exit()
if ls[0] == 0:
    if n != 1:
        print(-1)
        sys.exit()
    else:
        print(0)
        sys.exit()
for j in range(n):
    if ls[j] == -inf:
        if j == 0 and n == 1:
            print(0)
            sys.exit()
        elif j == 0 and n != 1:
            ls[j] = 1
        else:
            ls[j] = 0
ls = list(map(str,ls))
print("".join(ls))
N=int(input())
tmp=input().split()
T=int(tmp[0])
A=int(tmp[1])
H=input().split()
H=[abs(A-(T-0.006*int(H[i]))) for i in range(0,N)]
min=H[0]
for i in range(1,N):
    if min>H[i]:
        min=H[i]
        index=i
print(index)

### FIXED CODE ###

N=int(input())
tmp=input().split()
T=int(tmp[0])
A=int(tmp[1])
H=input().split()
H=[abs(A-(T-0.006*int(H[i]))) for i in range(0,N)]
min=H[0]
index=0
for i in range(1,N):
    if min>H[i]:
        min=H[i]
        index=i
print(index+1)
N = int(input())
H = list(map(int, input().split()))
for i in reversed(range(n)):
    if i == 0:
        print("Yes")
    elif H - H[i - 1] == -1:
        H[i - 1] -= 1
    elif H[i] - H[i - 1] < -1:
        print("No")
        break
    else:
        continue

### FIXED CODE ###

n = int(input())
H = list(map(int, input().split()))
for i in reversed(range(n)):
    if i == 0:
        print("Yes")
    elif H[i] - H[i - 1] == -1:
        H[i - 1] -= 1
    elif H[i] - H[i - 1] < -1:
        print("No")
        break
    else:
        continue
X,Y,A,B,C = map(int,input().split())
p = list(map(int,input().split()))
q = list(map(int,input().split()))
r = list(map(int,input().split()))
p = sorted(p)
q = sorted(q)
r = sorted(r)
P = A - X
Q = B - Y
R = C - 1
found = True
for i in range(C+1):
    if R < 0:
        break
    if P < A:
        if (r[C-i-1] >= p[P]):
            if (q[Q] >= p[P]):
                P += 1
                R -= 1
            elif Q < B:
                if r[C-i-1] > q[Q]:
                    Q += 1
                    R -= 1
                else:
                    break
            else:
                break
        elif Q < B:
            if r[C-i-1] > q[Q]:
                Q += 1
                R -= 1
            else:
                break
        else:
            break
    elif Q < B:
        if r[C-i-1] > q[Q]:
            Q += 1
            R -= 1
        else:
            break    
    else:
        break
print(sum(p[P:])+sum(q[Q:])+sum(r[R+1:]))

### FIXED CODE ###

X,Y,A,B,C = map(int,input().split())
p = list(map(int,input().split()))
q = list(map(int,input().split()))
r = list(map(int,input().split()))
p = sorted(p)
q = sorted(q)
r = sorted(r)
P = A - X
Q = B - Y
R = C - 1
found = True
for i in range(C+1):
    if R < 0:
        break
    if P < A:
        if (r[C-i-1] >= p[P]):
            if Q < B:
                if (q[Q] >= p[P]):
                    P += 1
                    R -= 1
                elif r[C-i-1] > q[Q]:
                    Q += 1
                    R -= 1
                else:
                    break
            else:
                P += 1
                R -= 1
        elif Q < B:
            if r[C-i-1] > q[Q]:
                Q += 1
                R -= 1
            else:
                break
        else:
            break
    elif Q < B:
        if r[C-i-1] > q[Q]:
            Q += 1
            R -= 1
        else:
            break    
    else:
        break
print(sum(p[P:])+sum(q[Q:])+sum(r[R+1:]))
import itertool
a,b,c,d=int(input().split())
l=[a,b,c,d]
c=itertools.combinations(l,2)
ans=a*b
for i in c:
  if i[0]*i[1]>ans:
    ans=i[0]*i[1]
print(ans)

### FIXED CODE ###

l=list(map(int, input().split()))
l1=[l[0],l[1]]
l2=[l[2],l[3]]
ans=l[0]*l[2]
for i in l1:
  for j in l2:
    if i*j>ans:
      ans=i*j
print(ans)
N, A, B = map(int, input().split())
ans = []
for i in range(1, N):
    ans.append(A * i + B * (N - i))
print(min(ans))

### FIXED CODE ###

N, A, B = map(int, input().split())
if A * N < B:
    print(A * N)
else:
    print(B)
a, b ,c= map(int, input().split())
if a+b+c => 22 :
  print("bust")
else:
  print("win")

### FIXED CODE ###

a, b ,c= map(int, input().split())
if a+b+c >= 22 :
  print("bust")
else:
  print("win")
N=int(input())
li = list(map(int,input().split()))

for i in li:
  if i%2 ==0:
    if i%3 == 0 or i%5 == 0:
    else:
      print('DENIED')
      break
  print('APPROVED')


### FIXED CODE ###

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

flag = 0

for i in li:
  if i%2 ==0:
    if i%3 != 0 and i%5 != 0:
      print('DENIED')
      flag = 1
      break
    else:
      continue
      
if flag == 0:
  print('APPROVED')
import sys
sys.setrecursionlimit(10**7)
MOD = 10**9+7

n = int(input())
g = [[] for _ in range(n)]
for _ in range(n-1):
    a, b = map(int, input().split())
    a -= 1; b -= 1
    g[a].append(b)
    g[b].append(a)

lim = 10**6
fact = [1, 1] + [0] * (lim-1)
fact_inv = [1, 1] + [0] * (lim-1)
inv = [0, 1] + [0] * (lim-1)
for i in range(2, lim+1):
    fact[i] = fact[i-1] * i % MOD
    inv[i] = MOD - inv[MOD % i] * (MOD//i) % MOD
    fact_inv[i] = fact_inv[i-1] * inv[i] % MOD
def comb(n, m):
    if n < m or n < 0 or m < 0: return 0
    return fact[n] * (fact_inv[m] * fact_inv[n-m] % MOD) % MOD

dp = [1] * n
size = [0] * n

def dfs(v, pv):
    for nv in g[v]:
        if nv == pv: continue
        dfs(nv, v)
        ns = size[nv]+1
        size[v] += ns
        dp[v] *= dp[nv] * comb(size[v], ns) % MOD
        dp[v] %= MOD

def dfs2(v, pv):
    for nv in g[v]:
        if nv == pv: continue
        d, sz = dp[v], size[v]
        d *= inv[dp[nv]] * inv[comb(sz, size[nv]+1)] % MOD
        d %= MOD
        sz -= size[nv]+1

        size[nv] += sz+1
        dp[nv] *= d * comb(size[nv], sz+1) % MOD
        dp[nv] %= MOD
        dfs2(nv, v)

dfs(0, -1)
dfs2(0, -1)
print(*dp, sep="\n")


### FIXED CODE ###

import sys
sys.setrecursionlimit(10**7)
input = lambda: sys.stdin.readline().rstrip()
MOD = 10**9+7

n = int(input())
g = [[] for _ in range(n)]
for _ in range(n-1):
    a, b = map(int, input().split())
    a -= 1; b -= 1
    g[a].append(b)
    g[b].append(a)

lim = 10**5*2
fact = [1, 1] + [0] * (lim-1)
fact_inv = [1, 1] + [0] * (lim-1)
inv = [0, 1] + [0] * (lim-1)
for i in range(2, lim+1):
    fact[i] = fact[i-1] * i % MOD
    inv[i] = MOD - inv[MOD % i] * (MOD//i) % MOD
    fact_inv[i] = fact_inv[i-1] * inv[i] % MOD
def comb(n, m):
    if n < m or n < 0 or m < 0: return 0
    return fact[n] * (fact_inv[m] * fact_inv[n-m] % MOD) % MOD
def icomb(n, m):
    if n < m or n < 0 or m < 0: return 0
    return fact_inv[n] * (fact[m] * fact[n-m] % MOD) % MOD

dp = [1] * n
size = [0] * n

def dfs(v, pv):
    for nv in g[v]:
        if nv == pv: continue
        dfs(nv, v)
        ns = size[nv]+1
        size[v] += ns
        dp[v] *= dp[nv] * comb(size[v], ns) % MOD
        dp[v] %= MOD

def dfs2(v, pv):
    for nv in g[v]:
        if nv == pv: continue
        d, sz = dp[v], size[v]
        d *= pow(dp[nv], MOD-2, MOD) * icomb(sz, size[nv]+1) % MOD
        d %= MOD
        sz -= size[nv]+1

        size[nv] += sz+1
        dp[nv] *= d * comb(size[nv], sz+1) % MOD
        dp[nv] %= MOD
        dfs2(nv, v)

dfs(0, -1)
dfs2(0, -1)
print(*dp, sep="\n")
s = input()
print('{}{}{}'.format(s[0],len(s)-2,s[len(s)-1])

### FIXED CODE ###

## coding: UTF-8
s = input()

#print(len(s))
print('{}{}{}'.format(s[0],len(s)-2,s[-1]))
N, K = map(int, input().split())
int_list = sorted(list(map(int, input().split())), reverse=True)

print(sum(int_list[:K])

### FIXED CODE ###

N, K = map(int, input().split())
int_list = sorted(list(map(int, input().split())))

print(sum(int_list[-K:]))
a=input()
b=input()
c=input()
d=input()
e=input()
f=input()

if e-a > k:
  print(':(')
else:
  print('Yay!')

### FIXED CODE ###

a=int(input())
b=int(input())
c=int(input())
d=int(input())
e=int(input())
k=int(input())

if e-a>k:
  print(':(')
else:
  print('Yay!')
N = input()

res=0
for i in range(1, int(N)+1):
    if(les(N)//2==1):
        rea+=1

print(res)

### FIXED CODE ###

N = int(input())

res=0
for i in range(1, N+1):
    if(len(str(i)) % 2==1):
        res+=1

print(res)
import sys

read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines

X,Y,Z = map(int, readline())

A,B,C = Z,X,Y

print(A,B,C)

### FIXED CODE ###

import sys
 
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
 
X,Y,Z = map(int, readline().split())
 
A,B,C = Z,X,Y
 
print(A,B,C)
O = [i for i in input()]
E = [i for i in input()]
psw = ''

for i in range(len(E)):
    psw += O[i] + E[i]

if len(O) > len(E):
    psw += O[-1]


print(psw）

### FIXED CODE ###

O = [i for i in input()]
E = [i for i in input()]
psw = ''

for i in range(len(E)):
    psw += O[i] + E[i]

if len(O) > len(E):
    psw += O[-1]


print(psw)
N=int(input())
W=[]
for i in range(N):
    w=input()
    W.append(w)
    last=W[0][-1]
    S=set()
    S.add(w[0])
for i in range(1,N):
    if W[i][0]==last and not W[i] in S:
        pass
    else:
        print("No")
        exit()
    S.add(w[i])
    last=w[i][-1] #ケツ追加した
print("Yes")

### FIXED CODE ###

N=int(input())
W=[]
for i in range(N):
    w=input()
    W.append(w)
last=W[0][-1]
S=set()
S.add(W[0])
for i in range(1,N):
    if W[i][0]==last and not W[i] in S:
        pass
    else:
        print("No")
        exit()
    S.add(W[i])
    last=W[i][-1]
print("Yes")
print(''.join(s[i][i] for i, s in enumerate(input() for _ in range(3))))

### FIXED CODE ###

print(''.join(s[i] for i, s in enumerate(input() for _ in range(3))))
N=input()
ans=[a,i,u,e,o]
if N in ans:
  print("vowel")
else:
  print("consonant")

### FIXED CODE ###

N=input()
ans=["a","i","u","e","o"]
if N in ans:
  print("vowel")
else:
  print("consonant")
a,b = map(int, raw_input().split())
d = a / b
r = a % b
f = float(a) / float(b)
print " ".join(map(str, [d, r, "%.5d".f]))

### FIXED CODE ###

a,b = map(int, raw_input().split())
d = a / b
r = a % b
f = float(a) / float(b)
print " ".join([str(d), str(r), str('%.5f' % f)])
a, b = list(map(int, input().split()))
# 整数 N 個 (改行区切り)
#N = [int(input()) for i in range(N)]
# 整数 N 個 (スペース区切り)
#N = list(map(int, input().split()))
# 整数 (縦 H 横 W の行列)
#A = [list(map(int, input().split())) for i in range(H)]

if a % 2 == 1 and b % 2 == 1:
  print("Odd")
  else:
    print("Even")

### FIXED CODE ###

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

if a%2==0 or b%2==0:
  print("Even")
else:
  print("Odd")