Harryxun/stf_run huggingface dataset:
import math
a,b,c,d=map(int,input().split())
c-=a
d-=b
g=math.gcd(c,d)
j=int(c/g)
k=int(d/g)
print((j+k-1)*g)

### FIXED CODE ###

def gcd(a,b):
	if b==0:return a
	return gcd(b,a%b)
a,b,c,d=map(int,input().split())
c=abs(c-a)
d=abs(d-b)
g=gcd(max(c,d),min(c,d))
j=int(c/g)
k=int(d/g)
print((j+k-1)*g)
import copy

def cnt(a, m, i):
    if a[i] < m:
        a[i] += 1
    else:
        a = cnt(a, m, i-1)
        a[i] = copy.deepcopy(a[i-1])
    return a

def check(a, ab):
    score = 0
    for i in range(q):
        ai, bi = ab[i][0], ab[i][1]
        if a[bi] - a[ai] == ab[i][2]:
            score += ab[i][3]
    return score
  
n, m, q = map(int,input().split())
ab = []
for i in range(q):
    ab.append(list(map(int,input().split())))

a = [1] * (n+1)
ans = 0
while a[0] == 1:
    x = check(a, ab)
    ans = max(ans, x)
    # print(a, ans)
    a = cnt(a, m, -1)
print(ans)



### FIXED CODE ###

import copy

def cnt(a, m, i):
    if a[i] < m:
        a[i] += 1
    else:
        a = cnt(a, m, i-1)
        a[i] = copy.deepcopy(a[i-1])
    return a

def check(a, ab):
    score = 0
    for i in range(q):
        ai, bi = ab[i][0], ab[i][1]
        if a[bi] - a[ai] == ab[i][2]:
            score += ab[i][3]
    return score
  
n, m, q = map(int,input().split())
ab = []
for i in range(q):
    ab.append(list(map(int,input().split())))

a = [1] * (n+1)
a[0] = 0
ans = 0
while a[0] == 0:
    x = check(a, ab)
    ans = max(ans, x)
    # print(a, ans)
    a = cnt(a, m, -1)
print(ans)
r, g, b = map(int(), input().split())

A = 100*r + 10*g + b

if(A % 4 == 0):
	print("YES")
else:
	print("NO")

### FIXED CODE ###

r, g, b = map(int, input().split())

A = 100*r + 10*g + b

if(A % 4 == 0):
	print("YES")
else:
	print("NO")
S=input()
if S="ABC":
  print("ARC")
else:
  print("ABC")

### FIXED CODE ###

S=input()
if S=="ABC":
  print("ARC")
else:
  print("ABC")
from math import gcd
a, b, c, d = map(int, input().split())
mc = b // c - (a-1) // c
md = b // d - (a-1) // d
mcd = b // (c*d//gcd(c, d)) - (a-1) // (c*d//gcd(c, d))

print(int((b - a + 1) - mc - md + mcd))

### FIXED CODE ###

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

def gcd(x, y):
	while y:
		x, y = y, x % y
	return x

mc = b // c - (a-1) // c
md = b // d - (a-1) // d
mcd = b // (c*d//gcd(c, d)) - (a-1) // (c*d//gcd(c, d))

print(int((b - a + 1) - mc - md + mcd))
S = list(str())
pat1 = "YYMM"
pat2 = "MMYY"
pat3 = "AMBIGOUS"
pat4 = "NA"
mae =int(S[0] + S[1])
usiro = int(S[2] + S[3])
print(mae)
print(usiro)
if mae >= 13:
    if usiro >= 13:
        print(pat4)
    elif usiro != 0:
        print(pat1)
elif mae != 0:
    if usiro == 0:
        print(pat2)
    else:
        print(pat1)
else:
    if usiro >= 13 or usiro == 0:
        print(pat4)
    else:
        print(pat1)

### FIXED CODE ###

s = str(input())
mae = int(s[:2])
usiro = int(s[2:])
if 0 < mae < 13:
    if 0 <usiro < 13:
        print("AMBIGUOUS")
    else:
         print("MMYY")
elif 0 < usiro < 13:
         print("YYMM")
else:
    print("NA")
S = str(input())
T = str(input())
tempcount = 0
mincount = 0

if S in T:
    print("0")
    exit

for i in range(len(S) - len(T)+1):
    for j in range(len(T)):
        if S[i + j] != T[j]:
            tempcount += 1
    if i == 0:
        mincount = tempcount
    elif tempcount < mincount:
        mincount = tempcount
    tempcount = 0
    
print(mincount)



### FIXED CODE ###

D,T,S=map(int,input().split())
Max = 0

if D/S<=T:
    print("Yes")
else:
    print("No")
n,m=map(int,input().split())
yaku=set()
for i in range(1,m):
    yaku.add(m//i)
import copy
yakuc=copy.copy(yaku)
for i in yakuc:
    if i<n:
        yaku.remove(i)
yakul=list(yaku)
p=yakul[0]
print(m//p)


### FIXED CODE ###

n=int(input())
xyh=[]
for i in range(n):
    xyh.append(list(map(int,input().split())))
x0=xyh[0][0]
y0=xyh[0][1]
h0=xyh[0][2]
count=0
while h0==0:
    count+=1
    x0=xyh[count][0]
    y0=xyh[count][1]
    h0=xyh[count][2]
for x in range(101):
    for y in range(101):
        h=h0+abs(x-x0)+abs(y-y0)
        for i in range(n):
            if max(0,h-abs(x-xyh[i][0])-abs(y-xyh[i][1]))!=xyh[i][2]:
                break
            if i==n-1:
                print(x,y,h)
                quit()
cub = int(input(x))**3
print cub

### FIXED CODE ###

int = int(input())

print(int**3)
while 1:
  h,w = map(int, raw_input().split())
  if h==w==0: break
  A = []
  for i in range(h):
    A.append(map(int, list(raw_input().replace(".", "1").replace("*", "0"))))
  B = A[:]
  C = []
  for j in range(1,h):
    m=[]
    for i in range(j,h):
      x = [e1 & e2 for e1, e2 in zip(B[i-j], A[i])]
      B[i-j] = x
      m.append(max("".join(map(str, x)).split("0")))
    C.append(len(max(m))*(j+1))
  print max(C)

### FIXED CODE ###

while 1:
  h,w = map(int, raw_input().split())
  if h==w==0: break
  M = [0]*(h+1)
  a=[0]*w
  for i in range(h):
    x = raw_input()
    b=[0]*w
    sp=-1
    C = [-1]*(h+1)
    for j in range(w):
      if x[j]=="*": c=0
      else: c=a[j]+1
      b[j]=c
      dw=c-sp
      if dw>0: C[sp+1:c+1]=[j]*dw
      elif dw<0:
        for k in range(c+1,sp+1): M[k]=max(M[k],j-C[k])
        C[c+1:sp+1]=[-1]*(-dw)
      sp=c
    for k in range(1,sp+1):
      if C[k]>=0: M[k]=max(M[k],w-C[k])
    a=b
  s=max([a*b for a,b in zip(M, range(h+1))])
  print s
N, D = map(int, input().split())
ans = 0
for i in range(N):
    X, Y = map(int, input().split())

    if X*X + Y*T <= D*D:
        ans += 1
    
print(ans)

### FIXED CODE ###

N, D = map(int, input().split())
ans = 0
for i in range(N):
    X, Y = map(int, input().split())

    if X*X + Y*Y <= D*D:
        ans += 1
    
print(ans)
import itertools

N = int(input())
P = list(map(int, input().split()))
Q = list(map(int, input().split()))

M = [i for i in range(1, N+1)]
X = list(itertools.permutations(M, N))

for i in X:
    if list(i) == P:
        a = X.index(i) + 1
    elif list(i) == Q:
        b = X.index(i) + 1

print(abs(a - b))

### FIXED CODE ###

import itertools

N = int(input())
P = list(map(int, input().split()))
Q = list(map(int, input().split()))

if P == Q:
    print(0)

else:
    M = [i for i in range(1, N+1)]
    X = list(itertools.permutations(M, N))

    for i in X:
        if list(i) == P:
            a = X.index(i) + 1
        if list(i) == Q:
            b = X.index(i) + 1

    print(abs(a - b))
N, K, Q = map(int, input().split())
A = []
for q in range(Q):
    a = int(input())
    A.append(a)
points = np.array([K for i in range(N)])
for a in A:
    points -= 1
    points[a-1] += 1
for p in points:
    if p > 0:
        print('Yes')
    else:
        print('No')

### FIXED CODE ###

import numpy as np
N, K, Q = map(int, input().split())
A = []
for q in range(Q):
    a = int(input())
    A.append(a)
points2 = np.zeros(N)
for a in A:
    points2[a-1] += 1
results = []
for p in points2:
    if K - (Q - p) > 0:
        print('Yes')
    else:
        print('No')
n,b = map(int,input().split())
 
 print(n //(b*2))
 
 

### FIXED CODE ###

n,b = map(int,input().split())
 
print(-(-n//(b*2 +1)))
/*
	Suvash Kumar SUMON
	B.Sc. Engineering
	Dept. of Computer Science & Engineering (CSE)
	University of Rajshahi
	suvashsumon@outlook.com
*/

#include<bits/stdc++.h>
#define congrats_bro_you_solved_it return 0;
#define cholo_suru_kora_jak() int main()

using namespace std;

int countDivisibles(long long int A, long long int B, long long int M) 
{ 
    
    if (A % M == 0) 
        return (B / M) - (A / M) + 1; 
  
    
    return (B / M) - (A / M); 
} 

cholo_suru_kora_jak()
{
	long long int a, b, c, count=0;
	cin>>a>>b>>c;
	long long int ans = (b /c) - ((a - 1)  / c);
	//cout<<countDivisibles(a,b,c);
	cout<<ans;
	congrats_bro_you_solved_it;
}

### FIXED CODE ###

a, b, x = map(int, input().split())
c = b // x - a // x
if a  % x == 0:
	c += 1
print(c)
a, v = map(int, input().split())
b, w = map(int, input().split())
t = input()

move_a = int(v) * int(t) + int(a)
move_b = int(w) * int(t) + int(b)

if move_a >= move_b:
    print("YES")
else:
    print("NO")


### FIXED CODE ###

s = input()
print(s[0] + s[1] + s[2])
h, w, m = map(int, input().split())
bord_x, bord_y = [0 for i in range(h)], [0 for i in range(w)]
bord = [[0]*w for _i in range(h)]

hw = [list(map(int, input().split())) for _i in range(m)]

for s, t in hw:
    s -= 1
    t -= 1
    bord[s][t] += 1
    bord_x[s] += 1
    bord_y[t] += 1
x_max, y_max = max(bord_x), max(bord_y)
a = [x for x, p in enumerate(bord_x) if x_max==p]
b = [y for y, p in enumerate(bord_y) if y_max==p]

r = x_max + y_max - 1
for i in a:
    for j in b:
        if bord[i][j] >= 1:
            continue
        else:
            r += 1
            break
print(r)

### FIXED CODE ###

h, w, m = map(int, input().split())
bord_x, bord_y = [0]*h, [0]*w
 
hw = []
for _i in range(m):
    s, t = map(int, input().split())
    s -= 1
    t -= 1
    bord_x[s] += 1
    bord_y[t] += 1
    hw.append([s, t])
 
x_max, y_max = max(bord_x), max(bord_y)
 
cnt = 0
for i, j in hw:
    if bord_x[i] == x_max and bord_y[j] == y_max:
        cnt += 1
 
if cnt == bord_x.count(x_max)*bord_y.count(y_max):
    x_max -= 1
 
print(x_max+y_max)
# -*- coding: utf-8 -*-
l = [] 
r = []
count = 0

N, M = map(int, input().split())
l = [0] * N
r = [0] * N
for i in range(0,N):
    l[i], r[i] = map(int, input().split())

#idカードの生成
    
for i in range(1,N+1):
    if max(l) <= i and i <= min(r):
        count += 1

print(count)

### FIXED CODE ###

# -*- coding: utf-8 -*-
l = [] 
r = []
count = 0

N, M = map(int, input().split())
l = [0] * M
r = [0] * M
for i in range(0,M):
    l[i], r[i] = map(int, input().split())

#idカードの生成
    
ml = max(l)
mr = min(r)

for i in range(1,N+1):
    if  ml <= i and i <= mr:
        count += 1

print(count)
#coding: utf-8
N, Q = map(int, input().split())
S = input()
for i in range(Q):
    q1 = list(map(int, input().split()))
    cnt = 0
    qs = S[q1[0]-1: q1[1]]
    print(qs)
    print(qs.count("AC"))

### FIXED CODE ###

#coding: utf-8
N, Q = map(int, input().split())
S = input()
T = [0]
for i in range(N-1):
    if S[i] == "A" and S[i+1] == "C":
        T.append(T[i] + 1)
    else:
        T.append(T[i])
for j in range(Q):
    l, r = map(int, input().split())
    print(T[r-1] - T[l-1])
A, B =map(int,input.split())
C = A+B
if C >=10:
    print('error')
else:
    print(C)

### FIXED CODE ###

a = sum(map(int, input().split()))
print(a if a < 10 else 'error')
def Sol(n,a,b):
    
    if n == 1:
        print("OK")
        return
    if n == 0:
    	print("NG")
        return
    m = a%n
    if b-m >= a:
        print("OK")
    else:
        print("NG")
    
    return

    
n = int(input())

#for t in range(int(input())):
a,b = map(int,input().split())
#    arr = []
#    for i in range(c):
#        arr.append(list(map(int,input().split())))
#arr = list(map(int,input().split()))
#k = input()
#n = int(input())
Sol(n,a,b)


### FIXED CODE ###

def Sol(n,a,b):
    
    m = b%n
    if b-m >= a:
        print("OK")
    else:
        print("NG")
    
    return

    
n = int(input())

#for t in range(int(input())):
a,b = map(int,input().split())
#    arr = []
#    for i in range(c):
#        arr.append(list(map(int,input().split())))
#arr = list(map(int,input().split()))
#k = input()
#n = int(input())
Sol(n,a,b)
import sys
input = sys.stdin.readline

N = int(input())
A = [0] + list(map(int, input().split()))
B = [0 for _ in range(N+1)]

for i in range(N, 0, -1):aimport sys
input = sys.stdin.readline

N = int(input())
A = [0] + list(map(int, input().split()))
B = [0] * (N+1)

for i in range(N, 0, -1):
    sum = 0
    for j in range(2 * i, N, i):
        sum ^= B[j]
    B[i] = sum ^ A[i]
ans = []
for i in range(1, N+1):
    if B[i]:
        ans.append(str(i))
print(len(ans))
if ans:
    print(' '.join(ans))

    sum = 0
    for j in range(2 * i, N, i):
        sum ^= B[j]
    B[i] = sum ^ A[i]
ans = []
for i in range(1, N+1):
    if B[i]:
        ans.append(str(i))
print(len(ans))
if ans:
    print(' '.join(ans))


### FIXED CODE ###

import sys
input = sys.stdin.readline

N = int(input())
A = [0] + list(map(int, input().split()))
B = [0] * (N+1)

ans = []
for i in range(N, 0, -1):
    sum = 0
    for j in range(2 * i, N+1, i):
        sum ^= B[j]
    B[i] = sum ^ A[i]
    if B[i]:
        ans.append(str(i))

print(len(ans))
if ans:
    print(' '.join(ans))
n = int(input())

l = []
for _ in range(0, 100):
    x = _**5
    if x > 10**9:
        break
    else:
        l.append(x)
tmp = len(l)

for i in range(len(l)):
    l.append(l[i]*-1)
#print(l)
#print(len(l))

from itertools import combinations
y = (list(combinations(l, 2)))
#print(y)

for j in range(len(y)):
    if y[j][0] - y[j][1] == n:
        z = j
#print(y[z])

if y[z][0] >= 0:
    a = l.index(y[z][0])
else:
    a = -1 * (l.index(y[z][0]*-1))

if y[z][1] >= 0:
    b = l.index(y[z][1])
else:
    b = -1 * (l.index(y[z][1]*-1))


print(a, b)        
        

### FIXED CODE ###

# +の場合
i = 0
ans = 0
while ans <= 1000000000:
   i += 1
   ans = i**5 - (i-1)**5
# i: 120

# -の場合
i = 0
ans = 0
while ans <= 1000000000:
   i -= 1
   ans = i**5 - (i-1)**5 
# i: -119

n = int(input())
l = [_**5 for _ in range(120)]

for i in range(1,120):
    for j in range(120):
        if l[i] - l[j] == n:
            print(int(l[i]**0.2), int(l[j]**0.2))
            exit()
        if l[i] + l[j] == n:
            print(int(l[i]**0.2), int(-1*l[j]**0.2))
            exit()
#include<bits/stdc++.h>
using namespace std;

void solve(){
  int X;
  int A,B;
  cin >> X ;
  for (A=-118;A<120;A++){
    for (B=-119;B<A;B++){
      if (pow(A,5.0)-pow(B,5.0)==X){
	cout << A << B << endl;
	goto OUT;
      }
    }
  }
 OUT:;
}

int main(){
  solve();
  return 0;
}


### FIXED CODE ###

def func(x):
    for A in range(-118,120):
        for B in range(-119,119):
            if (A**5-B**5)==x:
                return A,B

def main():
    x=int(input())
    print("%d %d" %func(x))
                

if __name__=="__main__":
    main()
import sys
 
lines = sys.stdin.readlines()
num_a ,num_b, num_m = [int(v) for v in lines[0].split()]
# ----
 
a_list = [int(v) for v in lines[1].split()[:num_a+1]]
b_list = [int(v) for v in lines[2].split()[:num_b+1]]
 
# print(a_list)
# print(b_list)
 
result = max(a_list) + max(b_list)
ignores = set()
for c in lines[3:num_m+3]:
    a_i, b_i, discount = map(int, c.split())
    try:
        ignores.add((int(a_i), int(b_i)))
        
        price = a_list[a_i-1] + b_list[b_i-1] - discount
        
        if price < result:
            result = price
    except IndexError:
        print('------')
        print(c)
        pass
 
# ---
# result = max(a_list) + max(b_list)
for i, a in enumerate(a_list):
    for j, b in enumerate(b_list):
        if (i+1, j+1) not in ignores:
            price = a + b
            result = price if price < result else result
            
    
print(result)


### FIXED CODE ###

import sys

lines = sys.stdin.readlines()
 
text = lines[0]

import re
if re.match(r'^(hi)+$', text):
    print('Yes')
else:
    print('No')
#!/usr/bin/env python3

import numpy as np


def solve(H, W, S):
    grid = np.zeros(H*W, dtype=np.int)
    for y in range(H):
        count = 0
        start = 0
        yw = y * W
        for x in range(W):
            if S[y][x] == '#':
                grid[yw+start:yw+x] = count
                start = x + 1
                count = 0
            else:
                count += 1
        grid[yw+start:yw+W] = count

    for x in range(W):
        count = 0
        start = 0
        for y in range(H):
            if S[y][x] == '#':
                grid[(start*W+x):(y*W+x):W] += count
                start = y + 1
                count = 0
            else:
                count += 1

        grid[(start*W+x):(H*W+1):W] += count

    return grid.max() - 1


if __name__ == '__main__':
    H, W = map(int, input().split())
    S = [input().strip() for _ in range(H)]

    ans = solve(H, W, S)

    print(ans)


### FIXED CODE ###

#!/usr/bin/env python3


def solve(H, W, S):
    grid = [[0] * W for _ in range(H)]
    for y in range(H):
        count = 0
        start = 0
        for x in range(W):
            if S[y][x] == '#':
                for i in range(start, x):
                    grid[y][i] = count
                start = x + 1
                count = 0
            else:
                count += 1
        for i in range(start, W):
            grid[y][i] = count

    for x in range(W):
        count = 0
        start = 0
        for y in range(H):
            if S[y][x] == '#':
                for i in range(start, y):
                    grid[i][x] += count
                start = y + 1
                count = 0
            else:
                count += 1
        for i in range(start, H):
            grid[i][x] += count

    ans = 0
    for x in range(W):
        for y in range(H):
            if grid[y][x] > ans:
                ans = grid[y][x]
    return ans - 1


if __name__ == '__main__':
    H, W = map(int, input().split())
    S = [input().strip() for _ in range(H)]

    ans = solve(H, W, S)

    print(ans)
l = input().split()
print(l[0] + l[2]/2)

### FIXED CODE ###

x, y = map(int, input().split())
print(x + y//2)
import sys,bisect as bs
sys.setrecursionlimit(100000)
mod = 10**9+7
Max = sys.maxsize
def l(): #intのlist
    return list(map(int,input().split()))
def m(): #複数文字
    return map(int,input().split())
def onem(): #Nとかの取得
    return int(input())
def s(x): #圧縮
    a = []
    aa = x[0]
    su = 1
    for i in range(len(x)-1):
        if aa != x[i+1]:
            a.append([aa,su])
            aa = x[i+1]
            su = 1
        else:
            su += 1
    a.append([aa,su])
    return a
def jo(x): #listをスペースごとに分ける
    return " ".join(map(str,x))
def max2(x): #他のときもどうように作成可能
    return max(map(max,x))
def In(x,a): #aがリスト(sorted)
    k = bs.bisect_left(a,x)
    if k != len(a) and a[k] ==  x:
        return True
    else:
        return False

n = onem()
print(10**5)
a = [i + n//(10**5) for i in range(10**5)]

for i in range(10**5-1):
    if i+1 <= n%(10**5):
        a[i] += N - n%(10**5) + 1:
    else:
        a[i] -= n%(10**5)
print(jo(a))

### FIXED CODE ###

import sys,bisect as bs
sys.setrecursionlimit(100000)
mod = 10**9+7
Max = sys.maxsize
def l(): #intのlist
    return list(map(int,input().split()))
def m(): #複数文字
    return map(int,input().split())
def onem(): #Nとかの取得
    return int(input())
def s(x): #圧縮
    a = []
    aa = x[0]
    su = 1
    for i in range(len(x)-1):
        if aa != x[i+1]:
            a.append([aa,su])
            aa = x[i+1]
            su = 1
        else:
            su += 1
    a.append([aa,su])
    return a
def jo(x): #listをスペースごとに分ける
    return " ".join(map(str,x))
def max2(x): #他のときもどうように作成可能
    return max(map(max,x))
def In(x,a): #aがリスト(sorted)
    k = bs.bisect_left(a,x)
    if k != len(a) and a[k] ==  x:
        return True
    else:
        return False

n = onem()
print(50)
a = [i + n//(50) for i in range(50)]

if n%(50) == 0:
    print(jo(a))
else:
    for i in range(50):
        if n%(50) >= i+1:
            a[i] += 50 - n%(50) +1
        else:
            a[i] -= n%(50)
    print(jo(a))
import numpy as np
from sys import stdin
sys.setrecursionlimit(10**6) 

def main(args):
    a, b = [int(x) for x in stdin.readline().rstrip().split()]
    if 6 <= a and a <= 12:
        v = b//2
    elif a <= 5:
        v = 0
    else:
        v = b
    print(v)

main()

### FIXED CODE ###

import numpy as np
from sys import stdin
#sys.setrecursionlimit(10**6) 

def main():
    a, b = [int(x) for x in stdin.readline().rstrip().split()]
    if 6 <= a and a <= 12:
        v = b//2
    elif a <= 5:
        v = 0
    else:
        v = b
    print(v)

if __name__ == "__main__":
    main()
n=int(input())
a=list(map(int,input().split()))
def gcd(x,y):
  if x%y==0:
    return y
  else:
    return(y,x%y)
  
x=a[0]
  
for i in range(1,n):
  x=gcd(x,a[i])
  
print(x)  
  

### FIXED CODE ###

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

while len(a)>=2:
  for i in range(1,len(a)):
    a[i]=a[i]%a[0]
  if 0 in a:
    for j in range(a.count(0)):
      a.remove(0)
  a.sort()
    

print(a[0])
N = int(input())
T = []

for _ in range(N):
	T.append(int(input()))
	
def gcd(a, b):
	if b == 0:
		return a
	else:
		return gcd(b, a % b)

ans = 1
	
while T:
	cur = T.pop(0)
	ans = (ans * cur) / gcd(ans, cur)
	
print(int(ans))

### FIXED CODE ###

N = int(input())
T = []

for _ in range(N):
	T.append(int(input()))
	
def gcd(a, b):
	if b == 0:
		return a
	else:
		return gcd(b, a % b)

ans = 1
	
for i in range(N):
	ans = ans * T[i] // gcd(ans, T[i])
	
print(ans)
N, K = map(int, input().split())
L = N-K
M = 1e9+7
import math
def cmb(n, r):
    if n - r < r: r = n - r
    if r == 0: return 1
    if r == 1: return n

    numerator = [n - r + k + 1 for k in range(r)]
    denominator = [k + 1 for k in range(r)]

    for p in range(2,r+1):
        pivot = denominator[p - 1]
        if pivot > 1:
            offset = (n - r) % p
            for k in range(p-1,r,p):
                numerator[k - offset] /= pivot
                denominator[k] /= pivot

    result = 1
    for k in range(r):
        if numerator[k] > 1:
            result *= int(numerator[k])

    return result

def kai(x):
    z = 1
    for i in range(x):
        z *= x-i
        z = z%M
    return z

def comb(n,k,p):
  """power_funcを用いて(nCk) mod p を求める"""
  if n<0 or k<0 or n<k: return 0
  if n==0 or k==0: return 1
  a=kai(n) #factorial(n) %p
  b=kai(k) #factorial(k) %p
  c=kai(n-k) #factorial(n-k) %p
  return (a*power_func(b,p-2,p)*power_func(c,p-2,p))%p
def power_func(a,b,p):
  """a^b mod p を求める"""
  if b==0: return 1
  if b%2==0:
    d=power_func(a,b//2,p)
    return d*d %p
  if b%2==1:
    return (a*power_func(a,b-1,p ))%p
def combinations_count(n, r):
    return math.factorial(n) // (math.factorial(n - r) * math.factorial(r))

for i in range(K):
    i += 1 #iは1からkまで
    B_sla = cmb(K-1, i-1)
    R = L-(i-1)
    if R == 0:
        R_ire = 1
    elif R < 0:
        R_ire = 0
    else:
        R_ire = combinations_count(R+i, R)

    print(int(B_sla*R_ire%M))

### FIXED CODE ###

N, K = map(int, input().split())
#組み合わせ -------------------------------------------------
mod = int(1e9+7) #適宜変更
Max = 2001 #適宜変更
fac = [0]*(Max)
finv = [0]*(Max)
inv = [0]*(Max)
fac[0]=fac[1]=1
finv[0]=finv[1]=1
inv[1]=1
for i in range(2,Max):
        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,r):
    if n < r:
        return 0
    if n < 0 or r < 0 :
        return 0
    return fac[n]*(finv[r]*finv[n-r]%mod)%mod

for i in range(K):
    i += 1 #iは1からkまで
    B_sla = Comb(K-1, i-1)
    R = N-K-(i-1)
    if R == 0:
        R_ire = 1
    elif R < 0:
        R_ire = 0
    else:
        R_ire = Comb(R+i, R)

    print(int(B_sla*R_ire%mod))
import sys
input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

start = 0
ind = 0
for a in A:
    while start < N and B[(start+ind)%N] == a:
        start += 1
    if start >= N: break
    ind += 1

if start >= N:
    print("No")
else:
    print("Yes")
    ans = []
    for i in range(N):
        if B[(i+start)%N] == A[i]:
            raise Exception
        ans.append(B[(i+start)%N])
    print(*ans)

### FIXED CODE ###

import sys
input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

start = 0
ind = 0
NG = [0]*(2*N+1)

bdic = {}
for i, b in enumerate(B):
    if not b in bdic:
        bdic[b] = [i, i]
    else:
        bdic[b] = [min(bdic[b][0], i), max(bdic[b][1], i)]


for i, a in enumerate(A):
    if a in bdic:
        j1, j2 = bdic[a]
        if j1 >= i:
            NG[j1-i] += 1
            NG[j2-i+1] -= 1
        elif j2 < i:
            NG[j1-i+N] += 1
            NG[j2-i+1+N] -= 1
        else:
            NG[j1-i+N] += 1
            NG[0] += 1
            NG[j2-i+1] -= 1

start = -1
for i in range(N):
    if NG[i] == 0:
        start = i
        break
    NG[i+1] += NG[i]

if start == -1:
    print("No")
else:
    print("Yes")
    ans = []
    for i in range(N):
        ans.append(B[(i+start)%N])
    print(*ans)
w,h,x,y,r=map(int,input().split())

a=x-r
ap=x+r

b=y-r
bp=y+r
if a>0 and ap<w and b>0 and bp<h:
	print(“Yes”)
else:
	print(“No”)


### FIXED CODE ###

w,h,x,y,r=map(int,input().split())

a=x-r
ap=x+r

b=y-r
bp=y+r
if a<0 or ap>w or b<0 or bp>h:
	print('No')
else:
	print('Yes')