Harryxun/stf_run huggingface dataset:
# -*- coding: utf-8 -*-

"""
計算式は以下のように示される
C_n = (1/n)*(1+C_(n-1)) + ((n-1)/n)*C_(n-1)  =  C_(n-1)+(1/n)
"""
import math
N = int(input())
X = list(map(int, input().split()))

def calc(j,i):
    if j==i:
        return 1.0/i
    return calc(j+1,i)+(1.0/j)

result = []
for i in range(1, N):
    temp = (X[i]-X[i-1])*calc(1,i)
    result.append(temp)

print(round(sum(result)*math.factorial(N-1))%(10**9+7))

### FIXED CODE ###

# -*- coding: utf-8 -*-

mod = 10**9 +7
N = int(input())
X = list(map(int, input().split()))

factorial=[1]
for i in range(1,N):
    factorial.append(factorial[-1] *i %mod)

ans=0
for i in range(1,N):
    ans = (ans*i + (X[-1]-X[i-1])*factorial[i-1]) %mod

print(ans)
#ABC084D 累積和
from itertools import accumulate
#エラトステネスの篩
def sieve(n: int) -> set: #返り値はset
    num = [True]*n
    num[0] = num[1] = False
    for i in range(3,int(n**0.5)+1,2):
        if num[i]:
            num[i * i:: 2 * i] = [False] * ((n - i ** 2 - 1) // (2 * i) + 1)
    return {2}|{i for i in range(3,n,2) if num[i]}

primelist = sieve(10**5+1)
Q = int(input())
N = []
A = []
for i in range(Q):
    num = list(map(int, input().split()))
    N.append(num)
    
#prime = list(set(sieve(r))-set(sieve(l)))#重複がないlist同士の引き算
    
_2017_like = [1 if i in primelist and (i + 1) // 2 in primelist else 0 for i in range(10**5-1)]#2017likeな数のindexが求まる
sum = list(accumulate(_2017_like)) #ある数までの解の個数
for i in range(Q):
    ans = sum[N[i][1]]-sum[N[i][0]-1] #累積和
    A.append(ans)
print('\n'.join(map(str, A)))

### FIXED CODE ###

#ABC084D 累積和
from itertools import accumulate
#エラトステネスの篩
def sieve(n: int) -> set: #返り値はset
    if n < 2:
        return set()
    
    num = [True]*n
    num[0] = num[1] = False
    for i in range(3,int(n**0.5)+1,2):
        if num[i]:
            num[i * i:: 2 * i] = [False] * ((n - i ** 2 - 1) // (2 * i) + 1)
    return {2}|{i for i in range(3,n,2) if num[i]}

primelist = sieve(10**5+1)
Q = int(input())
N = []
A = []
for i in range(Q):
    num = list(map(int, input().split()))
    N.append(num)
    
#prime = list(set(sieve(r))-set(sieve(l)))#重複がないlist同士の引き算
    
_2017_like = [1 if i in primelist and (i + 1) // 2 in primelist else 0 for i in range(10**5+1)]#2017likeな数のindexが求まる
sum = list(accumulate(_2017_like)) #ある数までの解の個数
for j in range(Q):
    ans = sum[N[j][1]]-sum[N[j][0]-1] #累積和
    A.append(ans)
print('\n'.join(map(str, A)))
counter=0
a,b,c=map(int,input().split())
for i in range(a,b):
    if(c%i==0) counter+=1
print(f"{counter}")



### FIXED CODE ###

counter=0
a,b,c=map(int,input().split())
for i in range(a,b+1):
    if((c%i)==0):
        counter=counter+1
print(f"{counter}")
def stringconcant(S,T):
    a = S
    b = T
    c = a+b
    return c

S= input()
T= input()
a = stringconcant(T,S)
print(a)

### FIXED CODE ###

A,B=input().split()
print(B+A)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
(t if t < 24 else t-24)

### FIXED CODE ###

a,b=map(int,input().split())
t=a+b
print(t if t < 24 else t-24)
N, M = map(int, input().split())
A = list(map(int, input(),split()))
sum = sum(A)
if sum > N:
    ans = -1
else:
    ans = N - sum
print(ans)


### FIXED CODE ###

N, M = map(int, input().split())
A = list(map(int, input().split()))
B = sum(A)
if B > N:
    ans = -1
else:
    ans = N - B
print(ans)
n=int(input())
l=list(map(int,input().split()))
count=0
d={}
def diff(a,b):
    if a>b:
        return(a-b)
    else:
        return(b-a)
for i in range(0,len(l)):
    if l[i]>2*10**5:
        pass
    else:
        d[i+1]=l[i]
l=list(d.keys()):
for i in range(0,len(l)):
    for j in range(i+1,len(l)):
        if diff(i,j)==d[j]+d[i]:
            count+=1
print(count)


### FIXED CODE ###

n=int(input())
l=list(map(int,input().split()))
count=0
new=[]
s=set()
d={}
for i in range(0,len(l)):
    new.append(i+1-l[i])
    s.add(i+1+l[i])
    if i+1+l[i] in d.keys():
        d[i+1+l[i]]+=1
    else:
        d[i+1+l[i]]=1
for i in range(0,len(new)):
    if new[i] in s:
        count+=d[new[i]]
print(count)
import numpy as np

W,H,N = map(int, input().split())

x_s,y_s,a_s = [],[],[]
for i in range(N):
	x,y,a = map(int, input().split())
    x_s.append(x)
    y_s.append(y)
    a_s.append(a)
    
x_s = np.array(x_s)
y_s = np.array(y_s)
a_s = np.array(a_s)

x_min = x_s[a_s==1].max()
x_max = x_s[a_s==2].min()
y_min = y_s[a_s==3].max()
y_max = y_s[a_s==4].min()

if (x_min>=x_max)|(y_min>=y_max):
  ans = 0
else:
  ans = (x_max-x_min)*(y_max-y_min)
  
print(int(ans))


### FIXED CODE ###

import numpy as np

W,H,N = map(int, input().split())

x_s,y_s,a_s = [],[],[]
for i in range(N):
  x,y,a = map(int, input().split())
  x_s.append(x)
  y_s.append(y)
  a_s.append(a)
    
x_s = np.array(x_s)
y_s = np.array(y_s)
a_s = np.array(a_s)

if (a_s==1).sum()>=1:
  x_min = x_s[a_s==1].max()
else:
  x_min = 0
  
if (a_s==2).sum()>=1:
  x_max = x_s[a_s==2].min()
else:
  x_max = W
  
if (a_s==3).sum()>=1:
  y_min = y_s[a_s==3].max()
else:
  y_min = 0
  
if (a_s==4).sum()>=1:
  y_max = y_s[a_s==4].min()
else:
  y_max = H
  
if (x_min>=x_max)|(y_min>=y_max):
  ans = 0
else:
  ans = (x_max-x_min)*(y_max-y_min)
  
print(int(ans))
A = int(input())
B = int(input())
 
if A > B:
  max = A + A - 1
  print(max)
elif B > A:
  max = B + B -1
  print(max)
elif A == B:
  max = A + B
  print(max)

### FIXED CODE ###

A,B = map(int,input().split())
 
if A > B:
  max = A + A - 1
  print(max)
elif B > A:
  max = B + B - 1
  print(max)
elif A == B:
  max = A + B
  print(max)
a = int(input())
b = int(input())
c = int(input())
d = int(input())
e = int(input())
k = int(input())
if b-a=<k and c-a=<k and d-a=<k and e-a=<k and c-b=<k and d-b=<k and e-b=<k and d-c=<k and e-c=<k and e-d=<k:
  print('Yay!')
else:
  print(':(')


        

### FIXED CODE ###

a = int(input())
b = int(input())
c = int(input())
d = int(input())
e = int(input())
k = int(input())
if b-a<=k and c-a<=k and d-a<=k and e-a<=k and c-b<=k and d-b<=k and e-b<=k and d-c<=k and e-c<=k and e-d<=k:
  print('Yay!')
else:
  print(':(')
A,B,K=list(map(int,input().split()))
count=0
for i in max(A,B):
  if (A%i==0)and(B%i==0):
    count+=1
    if count==K:
      ans=count
      break
print(ans)

### FIXED CODE ###

A,B,K=list(map(int,input().split()))
count=0
z=[A,B]
for i in range(max(z),0,-1):
  if (A%i==0)and(B%i==0):
    count+=1
    if count==K:
      ans=i
      break
print(ans)
# from collections import deque
def main():
    n, m, k = map(int, input().split())
    A = list(map(int, input().split()))
    B = list(map(int, input().split()))

    cnt_A = 0
    cnt_B = 0
    time = 0
    cnt = 0

    while time <= k:
        # Aの本がまだ無くなっていない時
        if cnt_A < n:
            # Aの本の方が読みやすい
            if A[cnt_A] < B[cnt_B]:
                time += A[cnt_A]
                cnt_A += 1
                cnt += 1

            # Bの本の方が読みやすい
            else:
                time += B[cnt_B]
                cnt_B += 1
                cnt += 1

        # Aの本がなくなっている時
        else:
            if cnt_B < m:
                time += B[cnt_B]
                cnt_B += 1
                cnt += 1
            else:
                break

        #print(cnt,time)


    if time > k:
        print(cnt - 1)
    else:
        print(cnt)




if __name__ == "__main__":
    main()


### FIXED CODE ###

# from collections import deque
import numpy as np
def main():
    n, m, k = map(int, input().split())
    A = np.array([0] + list(map(int, input().split())))
    B = np.array([0] + list(map(int, input().split())))
    X = np.cumsum(A)
    Y = np.cumsum(B)
    # print(P,Q)

    cnt = 0
    j = m
    # Aをi個、Bをj個選ぶ
    for i, x in enumerate(X):
        if x > k:
            break

        while x + Y[j] > k:
            j -= 1
        cnt = max(cnt, i + j)

    print(cnt)

if __name__ == "__main__":
    main()
import numpy as np
import sys
readline = sys.stdin.buffer.readline
N,A,B = map(int, readline().split())
R=A*(N//(A+B))+min(A,N%(A+B))
print(R)

### FIXED CODE ###

S=input()
if S=="AAA" or S=="BBB":
  print('No')
else:
  print('Yes')
N, X, T = map(int, input().split())
print(ceil(N / X) * T)

### FIXED CODE ###

N, X, T = map(int, input().split())
if N % X == 0:
  print(int(N / X) * T)
else:
  print(int(N / X + 1) * T)
import math
n = int(input())
ptint(2*n*math.pi)

### FIXED CODE ###

import math
n = int(input())
print(2*n*math.pi)
X, Y = int(input().split)
T=0
T=Y/2
print(X+T)

### FIXED CODE ###

n,m = map(int,input().split())
print(n+(m//2))
def xor(n1, n2):
  if n2=="0":
    return n1
  elif n2=="1":
    if n1=="1":
      return "0"
    else:
      return "1"
      
def bitxor(n1, n2):

  bn1 = bin(n1)[2:]
  bn2 = bin(n2)[2:]
  if n1<n2:
    bn1 = bn1.zfill(len(bn2))
  else:
    bn2 = bn2.zfill(len(bn1))
    
  n3 = [xor(b1,b2) for b1,b2 in zip(bn1, bn2)]
  n3 = "".join(n3)
  return int(n3, 2)


n = int(input())
a = [int(x) for x in input().split()]
a_unique = list(set(a))
l = len(a)

u0 = a.count(a_unique[0])
u1 = a.count(a_unique[1])
u2 = a.count(a_unique[2])

if l==3 and (a[2]== bitxor(a[0], a[1])) and (u0==u1 and u1==u2):
  print("Yes")
else:
  print("No")


### FIXED CODE ###

def xor(n1, n2):
  if n2=="0":
    return n1
  elif n2=="1":
    if n1=="1":
      return "0"
    else:
      return "1"
      
def bitxor(n1, n2):
 
  bn1 = bin(n1)[2:]
  bn2 = bin(n2)[2:]
  if n1<n2:
    bn1 = bn1.zfill(len(bn2))
  else:
    bn2 = bn2.zfill(len(bn1))
    
  n3 = [xor(b1,b2) for b1,b2 in zip(bn1, bn2)]
  n3 = "".join(n3)
  return int(n3, 2)
 
 
n = int(input())
a = [int(x) for x in input().split()]
a_unique = list(set(a))
la = len(a)
lau = len(a_unique)

if a_unique==[0]:
  print("Yes")

elif la%3==0 and (0 in a_unique):
  u0 = a.count(0)
  if u0*3!=la:
    print("No")
  else:
    a_unique.remove(0)
    tmp = [(a.count(ai)%2==0) for ai in a_unique]
    if len(tmp)==sum(tmp):
      print("Yes")
    else:
      print("No")

elif la%3==0 and lau==2 and (0 in a_unique):
  u0 = a.count(0)
  if a_unique[0]==0:
    num = a_unique[1]
  else:
    num = a_unique[0]
  u1 = a.count(num)
  if u0*2==u1:
    print("Yes")
elif la%3!=0 or lau!=3:
  print("No")
else:
  u0 = a.count(a_unique[0])
  u1 = a.count(a_unique[1])
  u2 = a.count(a_unique[2])
 
  if (a_unique[2]== bitxor(a_unique[0], a_unique[1])) and (u0==u1 and u1==u2):
    print("Yes")
  else:
    print("No")
from sys import stdin
def S(): return stdin.readline().rstrip()

a = S()
def f(t,a):
    if t == a:
        return True
    elif len(a)<len(t):
        return False
    else:
        strl = {0:'dream',1:'dreamer',2:'erase',3:'eraser'}
        for i in range(4):
            tmp = strl[i]
            if t+tmp in a[:len(t+tmp)]:
                if f(t+tmp,a):
                    return True
        return False

if f('',a):
    print('YES')
else:
    print('NO')

### FIXED CODE ###

from sys import stdin
def S(): return stdin.readline().rstrip()

a = S()
strl = ['dream','dreamer','erase','eraser']
t = ''
for i in range(len(a)-1,-1,-1):
    if 7<len(t):
        print('NO')
        exit()
    else:
        t = a[i]+t
        if t in strl:
            t = ''

print('YES')
n, q = map(int, input().split())
cnt = [0] * n
tree = [[] for i in range(n)]
for i in range(n - 1):
    a, b = map(int, input().split())
    tree[a - 1].append(b - 1)
    tree[b - 1].append(a - 1)

for i in range(q):
    p, x = map(int, input().split())
    cnt[p - 1] += x

def dfs(cur, par):
    for chi in tree[cur]:
        if chi == par:
            continue
        cnt[chi] += cnt[cur]
        dfs(chi, cur)
dfs(0, -1)
print(*cnt)

### FIXED CODE ###

import sys
sys.setrecursionlimit(10 ** 6)
input = sys.stdin.readline
n, q = map(int, input().split())
cnt = [0] * n
tree = [[] for i in range(n)]
for i in range(n - 1):
    a, b = map(int, input().split())
    tree[a - 1].append(b - 1)
    tree[b - 1].append(a - 1)

for i in range(q):
    p, x = map(int, input().split())
    cnt[p - 1] += x

def dfs(cur, par):
    for chi in tree[cur]:
        if chi == par:
            continue
        cnt[chi] += cnt[cur]
        dfs(chi, cur)
dfs(0, -1)
print(*cnt)
import math

N = int(input())
A = []
B = []
F = []
for i in range(1,N/2):
    if (N%i)== 0:
        A.append(N/i)
        B.append(i)
for i in range(len(A)):
    count_A = int(math.log10(A[i])+1)
    count_B = int(math.log10(B[i])+1)
    if count_A >= count_B:
        F.append(count_A)
    else:
        F.append(count_B)
print(min(F))


### FIXED CODE ###

import math

N = int(input())
A = []
B = []
F = []

for i in range(1,int(math.sqrt(N))+1,1):
    if (N%i)== 0:
        A.append(N/i)
        B.append(i)
for i in range(len(A)):
    count_A = int(math.log10(A[i])+1)
    count_B = int(math.log10(B[i])+1)
    if count_A >= count_B:
        F.append(count_A)
    else:
        F.append(count_B)
print(min(F))
from math import sqrt
a, b = input().split()
n = int(a+b)
if sqrt(n) == int(sqrt(n)):
  print("Yes")
else
  print("No")


### FIXED CODE ###

from math import sqrt
a, b = input().split()
n = int(a+b)
if sqrt(n) == int(sqrt(n)):
  print("Yes")
else:
  print("No")
import math
from functools import reduce
def f(n):
    res = 0
    while(n%2 == 0):
        res += 1
        n //= 2
    return res

def lcm(a, b):
    return a // math.gcd(a, b) * b

n, m = map(int, input().split())
A = list(map(lambda x: int(x) // 2, input().split()))

F = set()
for a in A:
    F.add(f(a))
if(len(F) != 1):
    print(0)
    exit()

l = reduce(lcm, A, 1)
ans = 0 if (l == 0) else (- (- (m // 2) // l))
print(ans)

### FIXED CODE ###

from functools import reduce
def f(n):
    res = 0
    while(n%2 == 0):
        res += 1
        n //= 2
    return res

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

def lcm(a, b):
    return a // gcd(a, b) * b

n, m = map(int, input().split())
A = list(map(lambda x: int(x) // 2, input().split()))

l = reduce(lcm, A, 1)
for a in A:
    if((l // a) % 2 == 0):
        print(0)
        break

else:
    ans = (m // l +1) // 2
    print(ans)
a,b = map(int,input().split())
print(max(a-b,a+b,a*B))

### FIXED CODE ###

a,b = map(int,input().split())
print(max(a-b,a+b,a*b))
#C問題
N, K = map(int, input().split())

D = []
D = list(map(int, input().split()))

num = []
for i in range(10):
    if i not in D:
        num.append(i)

N_num = []
while True:
    if N ==0:
        break
    N_num.append(N%10)
    N = N//10

N_num.sort(reverse = True)

ans = []
for i in N_num:
    for k in range(len(num)):
        if num[k] >= i:
            ans.append(num[k])
            break
        elif k == len(num):
            ans.append(k)
            ans[k-1] = num[k+1]
map(str, ans)
ans = int("".join(map(str, ans)))
print(ans)


### FIXED CODE ###

#C問題
N, K = map(int, input().split())
D = list(map(str, input().split()))

def check(n, d):
    n = str(n)
    for nstr in n:
        if nstr in d:
            return False
    return True
while True:
    if check(N, D):
        print(N)
        break
    else:
        N += 1
a, b, c = input(int(i) for i in input().split())
if a + b >= c:
  result = c + b
elif a + b < c:
  result = a + b + b
print(result)

### FIXED CODE ###

a, b, c = (int(i) for i in input().split())
if a + b + 1 >= c:
  result = b + c
else:
  result = a + 2 * b + 1
print(result)
N, K = map(int, input().split())
A = [int(x) for x in input().split()]
A.sort()
res = 0
MOD = 10**9+7
nCk_2 = dict()
def fact(n, k=1):
    if n == 0:
        return 1
    if n <= k:
        return 1
    return n*fact(n-1)
def comb(n, k):
    return (fact(n)/(fact(n-k)*fact(k)))%MOD
s = [1,-1]
for m in range(2):
    for i in range(K-1,N):
        res += s[m]*int((A[i])*comb(i,K-1))
    A = sorted(A, reverse=True)
print(res)


### FIXED CODE ###

N, K = map(int, input().split())
A = [int(x) for x in input().split()]
A.sort()
res = 0
MOD = 10**9+7
nCk_2 = dict()
fac, finv, inv = [0]*(N+1), [0]*(N+1), [0]*(N+1)
fac[0] = fac[1] = 1
finv[0] = finv[1] = 1
inv[1] = 1
for i in range(2,N+1):
    fac[i] = fac[i-1]*i%MOD
    inv[i] = MOD-inv[MOD%i]*(MOD//i)%MOD
    finv[i] = finv[i-1]*inv[i]%MOD
def comb(n, k):
    return (fac[n]*((finv[k]*finv[n-k])%MOD))%MOD
s = [1,-1]
for m in range(2):
    for i in range(K-1,N):
        res = (res + s[m]*int((A[i])*comb(i,K-1)))%MOD
    A = sorted(A, reverse=True)
print(res)
import numpy
n, m = map(int, raw_input().split())
a = numpy.array(map(int, raw_input().split()))
for i in xrange(n-1):
	a = numpy.c_[a, (map(int, raw_input().split()))]
b = numpy.array(map(int, raw_input().split()))
for i in xrange(m-1):
	b = numpy.r_[b, (map(int, raw_input().split()))]
for i in xrange(n):
	print b.dot(a)[i]

### FIXED CODE ###

n, m = map(int, raw_input().split())
 
a = [[0]*m for i in xrange(n)]
 
b = [0]*m
 
for i in xrange(n):
    tmp = map(int, raw_input().split())
    for j in xrange(m):
        a[i][j] = tmp[j]
for i in xrange(m):
    b[i] = input()
for i in xrange(n):
    tmp = 0
    for j in xrange(m):
        tmp += a[i][j] * b[j]
    print tmp
from collections import Counter
n = int(input())
s, t = [], []
for _ in range(n):
    s.append(input())
m = int(input())
for _ in range(n):
    t.append(input())
u = Counter(s) - Counter(t)
ans = u.most_common(1)
print(ans[1])


### FIXED CODE ###

from collections import Counter, defaultdict
n = int(input())
s= []
t = defaultdict(int)
for _ in range(n):
    s.append(input())
u = Counter(s)
m = int(input())
for _ in range(m):
    word = input()
    t[word] -= 1
    if word in u.keys():
        u[word] -= 1

ans = u.most_common(1)[0][1]
t = sorted(t.items(), key=lambda x:x[1], reverse=True)[0][1]
t = max(t, 0)
print(max(ans,t))
import math
x = int(input())


lst = []
for i in range(31):
    for j in range(8):
        if math.pow(i+1,j+1) <= 1000:
            lst.append(math.pow(i+1,j+1))
        else:
            break
l=999
for i in range(len(lst)):
    if 0 < x-lst[i] < l :
        l = abs(x-lst[i])
        ans = lst[i]


print(math.floor(ans))


### FIXED CODE ###

import math
x = int(input())

a = []
b = []
for i in range(8):
    a.append(math.floor(math.pow(x,(1.0/(i+2)))))

for i in range(8):
    b.append(math.pow(a[i],(i+2)))
tmp = 0
for i in range(8):
    if tmp < b[i]:
        tmp = b[i]
if x != 1000:
    print(math.floor(tmp))
else:
    print(1000)
for i in range(input()):
    s=raw_input()
    cur=0
    for j in range(input()):
        cmd=raw_input()
        if cmd=="forward char":
            cur=min(cur+1,len(s))
        elif cmd=="forward word":
            while cur<len(s) and s[cur]==" ":
                cur+=1
            while cur<len(s) and s[cur]!=" ":
                cur+=1
        elif cmd=="backward char":
            cur=max(cur-1,0)
        elif cmd=="backward word":
            while cur>0 and s[cur-1]==" ":
                cur-=1
            while cur>0 and s[cur-1]!=" ":
                cur-=1
        elif cmd=="delete char":
            if cur!=len(s):
                s=s[:cur]+s[cur+1:]
        elif cmd=="delete word":
            temp=cur
            if temp>=len(s):
                continue
            while s[temp]==" ":
                temp+=1
            if temp>=len(s):
                continue
            while s[temp]!=" " and temp<len(s):
                temp+=1
            s=s[:cur]+s[temp:]
        elif "insert" in cmd:
            idx1=cmd.find('"')
            idx2=cmd.find('"',idx1+1)
            s=s[:cur]+cmd[idx1+1:-1]+s[cur:]
            cur+=idx2-idx1-1
    print s[:cur]+"^"+s[cur:]

### FIXED CODE ###

for i in range(input()):
    s=raw_input()
    cur=0
    for j in range(input()):
        cmd=raw_input()
        if cmd=="forward char":
            cur=min(cur+1,len(s))
        elif cmd=="forward word":
            while cur<len(s) and s[cur]==" ":
                cur+=1
            while cur<len(s) and s[cur]!=" ":
                cur+=1
        elif cmd=="backward char":
            cur=max(cur-1,0)
        elif cmd=="backward word":
            while cur>0 and s[cur-1]==" ":
                cur-=1
            while cur>0 and s[cur-1]!=" ":
                cur-=1
        elif cmd=="delete char":
            if cur!=len(s):
                s=s[:cur]+s[cur+1:]
        elif cmd=="delete word":
            temp=cur
            if temp>=len(s):
                continue
            while temp<len(s) and s[temp]==" ":
                temp+=1
            if temp>=len(s):
                continue
            while temp<len(s) and s[temp]!=" ":
                temp+=1
            s=s[:cur]+s[temp:]
        elif "insert" in cmd:
            idx1=cmd.find('"')
            idx2=cmd.find('"',idx1+1)
            s=s[:cur]+cmd[idx1+1:-1]+s[cur:]
            cur+=idx2-idx1-1
    print s[:cur]+"^"+s[cur:]
c11, c12, c13 = map(int, input().split())
c21, c22, c23 = map(int, input().split())
c31, c32, c33 = map(int, input().split())

bs = []
for a1 in range(0, 100):
    for b1 in range(0, 100):
        if a1 + b1 == c11:
            f1 = True
            break
    for b2 in range(0, 100):
        if a1 + b2 == c12:
            f2 = True
            break
    for b3 in range(0, 100):
        if a1 + b3 == c13:
            f3 = True
            break
    if f1 and f2 and f3:
        bs.append((b1, b2, b3))

bss = []
for a2 in range(0, 100):
    for b1, b2, b3 in bs:
        if a2 + b1 == c21 and a2 + b2 == c22 and a2 + b3 == c23:
            bss.append((b1, b2, b3))

for a3 in range(0, 100):
    for b1, b2, b3 in bss:
        if a3 + b1 == c31 and a3 + b2 == c32 and a3 + b3 == c33:
            print("Yes")
            break
    else:
        continue
    break
else:
    print("No")


### FIXED CODE ###

c11, c12, c13 = map(int, input().split())
c21, c22, c23 = map(int, input().split())
c31, c32, c33 = map(int, input().split())

bs = []
for a1 in range(0, 101):
    for b1 in range(0, 101):
        if a1 + b1 == c11:
            f1 = True
            break
    for b2 in range(0, 101):
        if a1 + b2 == c12:
            f2 = True
            break
    for b3 in range(0, 101):
        if a1 + b3 == c13:
            f3 = True
            break
    if f1 and f2 and f3:
        bs.append((b1, b2, b3))

bss = []
for a2 in range(0, 101):
    for b1, b2, b3 in bs:
        if a2 + b1 == c21 and a2 + b2 == c22 and a2 + b3 == c23:
            bss.append((b1, b2, b3))

for a3 in range(0, 101):
    for b1, b2, b3 in bss:
        if a3 + b1 == c31 and a3 + b2 == c32 and a3 + b3 == c33:
            print("Yes")
            break
    else:
        continue
    break
else:
    print("No")
import sys
from math import factorial

def comb(n, k):
    return int(factorial(n)) / int(factorial(k)) / int(factorial(n-k))

def h_comb(n, k):
    return int(factorial(n+k-1)) / int(factorial(k)) / int(factorial(n - 1))

n, k =[int(i) for i in sys.stdin.readline().split()]
for i in range(1,k+1):
    print(int(comb(k-1, i-1) * h_comb(i+1, n-k-i+1) % (10**9+7)))

### FIXED CODE ###

import sys
from math import factorial

def comb(n, k):
    return int(factorial(n)) // int(factorial(k)) // int(factorial(n-k))

def h_comb(n, k):
    return int(factorial(n+k-1)) // int(factorial(k)) // int(factorial(n - 1))

n, k =[int(i) for i in sys.stdin.readline().split()]
for i in range(1,k+1):
    if n-k-i+1 < 0:
        print(0)
    else:
        x = comb(k-1, i-1)
        y = h_comb(i+1, n-k-i+1)
        print(int( x * y )% (10**9+7))
a,b,c = map(int, input().split())
if a % 2 == 1 && b % 2 == 1:
	print("Yes")
else:
	print("No")

### FIXED CODE ###

a,b = map(int, input().split())
if a % 2 == 1 and b % 2 == 1:
	print('Yes')
else:
	print('No')