Harryxun/stf_run huggingface dataset:
A,B = map(int,input().split(" "))
def lcm(x, y):
    return (x * y) // math.gcd(x, y)

print(lcm(A,B))

### FIXED CODE ###

import fractions
A,B = map(int,input().split(" "))
print(int((A * B) / fractions.gcd(A, B)))
from collections import Counter
N=int(input())
XY=[tuple(map(int, input().split())) for _ in range(N)]
PQ=[(x1-x2,y1-y2) for x1,y1 in XY for x2,y2 in XY if x1!=x2 or y1!=y2]
C=Counter(PQ)
print(N-C.most_common(1)[0][1])

### FIXED CODE ###

from collections import Counter
N=int(input())
XY=[tuple(map(int, input().split())) for _ in range(N)]
PQ=[(x1-x2,y1-y2) for x1,y1 in XY for x2,y2 in XY if x1!=x2 or y1!=y2]
C=Counter(PQ)
print(N-C.most_common(1)[0][1] if N!=1 else 1)
a,b,t = input().split()
print((t//a)*b)

### FIXED CODE ###

a,b,t = map(int,input().split())
print((t//a)*b)
#https://atcoder.jp/contests/abc125/tasks/abc125_d

from functools import reduce

def positivesum(lists):
	for i in range(len(lists)):
		if lists[i]<0:
			lists[i]=lists[i]*(-1)
	return(sum(lists))
	

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

#負数の数をカウント
count=0
for i in range(n):
	if alist[i]<0:
		count+=1

if count%2==0:
	print(positivesum(alist))
else:
	alist.sort()
	x=max(alist[count-1],-alist[count])
	print(positivesum(alist)+x*2)



### FIXED CODE ###

#https://atcoder.jp/contests/abc125/tasks/abc125_d

from functools import reduce

def positivesum(lists):
	for i in range(len(lists)):
		if lists[i]<0:
			lists[i]=lists[i]*(-1)
	return(sum(lists))
	

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

#負数の数をカウント
count=0
for i in range(n):
	if alist[i]<0:
		count+=1


if count==n and count%2==1:
	print(-sum(alist)+2*max(alist))

elif count%2==0:
	print(positivesum(alist))
else:
	alist.sort()
	x=max(alist[count-1],-alist[count])
	print(positivesum(alist)+x*2)
while 1:
   H, W = map(int, raw_input().split())
          
   if H == 0 and W == 0:
      break
   for i in range(H):
      if i%2 == 0:
         if W%2 == 0:
            print "#."*(W/2)
         elif W%2 == 1:
            print "#."*(w/2)+"#"
      elif i%2 == 1:
         if W%2 == 0:
            print ".#"*(W/2)
         elif W%2 == 1:
            print ".#"*(w/2)+"."
   print ""

### FIXED CODE ###

while 1:
   H, W = map(int, raw_input().split())
           
   if H == 0 and W == 0:
      break
   for i in range(H):
      if i%2 == 0:
         if W%2 == 0:
            print "#."*(W/2)
         elif W%2 == 1:
            print "#."*(W/2)+"#"
      elif i%2 == 1:
         if W%2 == 0:
            print ".#"*(W/2)
         elif W%2 == 1:
            print ".#"*(W/2)+"."
   print ""
n = input()
answer = 0
for i in range(1, n+1):
  if len(str(i)) % 2 != 0:
	answer += 1
    
print(answer)

### FIXED CODE ###

n = int(input())
answer = 0
for i in range(1, n + 1):
    if not len(str(i)) % 2 == 0:
        answer += 1
print(answer)
A, B = map(int, input().split())
ans = 0

if((A <= 9 )&&(B <= 9)):
  ans = A*B
else:
  ans = -1
  
print(ans)

### FIXED CODE ###

A, B = map(int, input().split())
ans = 0

if((A <= 9 )and(B <= 9)):
  ans = A*B
else:
  ans = -1
  
print(ans)
# AtCoder DP Task F - LCS
def backtrack(C, A, B, i, j):
    if i == 0 or j == 0:
        return ""
    if A[i - 1] == B[j - 1]:
        return backtrack(C, A, B, i - 1, j - 1) + A[i - 1]
    if C[i][j - 1] > C[i - 1][j]:
        return backtrack(C, A, B, i, j - 1)
    return backtrack(C, A, B, i - 1, j)

def lcs(A, B):
    a, b = len(A), len(B)
    C = [ [0] * (b + 1) for _ in range(a + 1) ]
    for i in range(1, a + 1):
        for j in range(1, b + 1):
            if A[i - 1] == B[j - 1]:
                C[i][j] = C[i-1][j-1] + 1
            else:
                C[i][j] = max(C[i][j - 1], C[i - 1][j])
#    return C[a][b]
    ret = backtrack(C, A, B, a, b)
    return ret

assert lcs("XMJYAUZ", "MZJAWXU") == "MJAU"
assert lcs("AGCAT", "GAC") == "AC"
assert lcs("AAAA", "AAAA") == "AAAA"

x = input().strip()
y = input().strip()
ans = lcs(x, y)
print(ans)


### FIXED CODE ###

# AtCoder DP Task F - LCS
def backtrack(C, A, B, i, j):
    out = ""
    while i != 0 and j != 0:
        if A[i - 1] == B[j - 1]:
            out = A[i - 1] + out
            i -= 1
            j -= 1
        elif C[i][j - 1] > C[i - 1][j]:
            j -= 1
        else:
            i -= 1
    return out

def lcs(A, B):
    a, b = len(A), len(B)
    C = [ [0] * (b + 1) for _ in range(a + 1) ]
    for i in range(1, a + 1):
        for j in range(1, b + 1):
            if A[i - 1] == B[j - 1]:
                C[i][j] = C[i-1][j-1] + 1
            else:
                C[i][j] = max(C[i][j - 1], C[i - 1][j])
#    return C[a][b]
    ret = backtrack(C, A, B, a, b)
    return ret

assert lcs("XMJYAUZ", "MZJAWXU") == "MJAU"
assert lcs("MZJAWXU", "XMJYAUZ") == "MJAU"
assert lcs("AGCAT", "GAC") == "AC"
assert lcs("AAAA", "AAAA") == "AAAA"
assert lcs("a", "z") == ""

if False:
    import random
    for _ in range(1000):
        q = [chr(random.randint(ord('a'), ord('z'))) for _ in range(random.randint(1, 1000))]
        p = [chr(random.randint(ord('a'), ord('z'))) for _ in range(random.randint(1, 1000))]
        lcs("".join(q), "".join(p))

x = input().strip()
y = input().strip()
ans = lcs(x, y)
print(ans)
import math
A,B=map(int,input().split())

print(A*B//math.gcd(A,B))

### FIXED CODE ###

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

print(A*B//fractions.gcd(A,B))
n,k = map(list(int,input().split()))
if k > (n-1)*(n-2)/2:
  print(-1)
else:
  p = (n-1)*(n-2)/2 - k
  for i in range(2,n+1):
    print(1,i)
  x = 2
  y = 3
  for _ in range(p):
    print(x,y)
    y = y + 1
    if y == n:
      x = x + 1
      y = x + 1

### FIXED CODE ###

n,k = map(int,input().split())
if k > (n-1)*(n-2)/2:
  print(-1)
else:
  p = (n-1)*(n-2)/2 - k
  print(n-1+int(p))
  for i in range(2,n+1):
    print(1,i)
  x = 2
  y = 3
  for _ in range(int(p)):
    print(x,y)
    y = y + 1
    if y == n + 1:
      x = x + 1
      y = x + 1
import fractions
n,X=map(int,input().split())
x=list(map(int,input().split()))
y=[]
for i in range(n):
  y.append(abs(x[i]-X))
G=float'inf'
for j in range(n):
  G=min(G,fractions.gcd(y[j],y[j+1]))
print(G)
  



### FIXED CODE ###

import fractions
import sys
n,X=map(int,input().split())
x=list(map(int,input().split()))
y=[]
if n==1:
  print(abs(x[0]-X))
  sys.exit()
for i in range(n):
  y.append(abs(x[i]-X))
G=100000000000
for j in range(n-1):
  G=min(G,fractions.gcd(y[j],y[j+1]))
print(G)
inputStr = input()

if inputStr == 'ABC':
	print('ARC')
else if inputStr == 'ARC':
    print('ABC')
else:
	print('')

### FIXED CODE ###

inputStr = input()

if inputStr == 'ABC':
 	print('ARC')
else:
	print('ABC')
processedIp = input.split(" ")
k = int(processedIp[0])
x = int(processedIp[1])
totalValue = k*500
if (totalValue >= x):
    print("Yes")
else:
    print("No")

### FIXED CODE ###

processedIp = input().split(" ")
k = int(processedIp[0])
x = int(processedIp[1])
totalValue = k*500
if (totalValue >= x):
    print("Yes")
else:
    print("No")
from collections import deque
import sys
input = sys.stdin.readline
h,w,k=map(int,input().split())
a = [list(input().rstrip()) for i in range(h)]
q = deque()
for i in range(h):
  for j in range(w):
    if a[i][j] == "x":
      a[i][j] = 0
      q.append((i,j,0))
    else:
      a[i][j] = -1
while q:
  s,t,cnt = q.popleft()
  for ns,nt in ((s+1,t),(s-1,t),(s,t+1),(s,t-1)):
    if 0<=ns<=h-1 and 0<=nt<=w-1 and a[ns][nt] == -1:
      q.append((ns,nt,cnt+1))
      a[ns][nt] = cnt+1
ans = 0
for i in range(k-1,h-k+1):
  for j in range(k-1,w-k+1):
    if a[i][j] >= k:
      ans += 1
print(ans)

### FIXED CODE ###

from collections import deque
import sys
input = sys.stdin.readline
h,w=map(int, input().split(' '))
a = [input() for i in range(h)]
nl = [[] for i in range(h)]
q = deque()
for i in range(h):
    for j in range(w):
        if a[i][j] == "#":
            nl[i].append(0)
            q.append([i,j,0])
        else:
            nl[i].append(-1)
while q:
    [s,t,cnt] = q.popleft()
    if s>0 and nl[s-1][t] == -1:
        q.append([s-1,t,cnt+1])
        nl[s-1][t] = cnt+1
    if s<h-1 and nl[s+1][t] == -1:
        q.append([s+1,t,cnt+1])
        nl[s+1][t] = cnt+1
    if t>0 and nl[s][t-1] == -1:
        q.append([s,t-1,cnt+1])
        nl[s][t-1] = cnt+1
    if t<w-1 and nl[s][t+1] == -1:
        q.append([s,t+1,cnt+1])
        nl[s][t+1] = cnt+1
ans = 0
for i in range(h):
    ans = max(ans,max(nl[i]))
print(ans)
import math
import os
import sys
from functools import lru_cache

if os.getenv("LOCAL"):
    sys.stdin = open("_in.txt", "r")

sys.setrecursionlimit(2147483647)
INF = float("inf")

N, X = list(map(int, sys.stdin.readline().split()))
S = list(map(int, sys.stdin.readline().split()))
MOD = 10 ** 9 + 7

S.sort()


# @lru_cache(maxsize=None)
# def test2(x, si):
#     # S[si] を最初にとったとき、最終的な数値の期待値
#     if si == 0:
#         return x % S[si]
#
#     ret = 0
#     for j in range(si):
#         ret += test2(x % S[si], si=j)
#     return ret / si
#
#
# dp = np.zeros((N, X + 1))
# dp[0] = np.arange(X + 1) % S[0]
# for i in range(1, N):
#     for x in range(X + 1):
#         dp[i][x] = np.mean(dp[:i, x % S[i]])
# print(dp[:, X])
# print(dp[:, X].sum() * math.factorial(N) / N % MOD)


# dp = np.arange(X + 1) % S[0]
# for i in range(1, N):
#     dp += dp[np.arange(X + 1) % S[i]] / i
# print(round(dp[X] * math.factorial(N) / N % MOD))


@lru_cache(maxsize=None)
def rec(x, i):
    if i == 0:
        return x % S[0]
    ret = 0
    for j in range(i):
        ret += rec(x % S[i], j)
    return ret / i


recsum = sum([rec(X, i) for i in range(N)])
print(round(recsum * math.factorial(N) / N % MOD))


### FIXED CODE ###

import math
import os
import sys

import numpy as np

if os.getenv("LOCAL"):
    sys.stdin = open("_in.txt", "r")

sys.setrecursionlimit(2147483647)
INF = float("inf")

N, X = list(map(int, sys.stdin.readline().split()))
S = list(map(int, sys.stdin.readline().split()))
MOD = 10 ** 9 + 7


def mod_invs(max, mod):
    """
    逆元のリスト 0 から max まで
    :param max:
    :param mod:
    :return:
    """
    invs = [1] * (max + 1)
    for x in range(2, max + 1):
        invs[x] = (-(mod // x) * invs[mod % x]) % mod
    return invs


S.sort()

invs = mod_invs(N, MOD)
dp = np.arange(X + 1) % S[0]
for i in range(1, N):
    dp += dp[np.arange(X + 1) % S[i]] * invs[i]
    dp %= MOD
print(int(dp[X] * math.factorial(N) % MOD * invs[N] % MOD))
h,w=map(int,input().split())
a=["."*(w+2)]
for i in range(h):
	x=input()
	a.append("."+x+".")
a.append("."*(w+2)
for i in range(h):
	for j in range(w):
		if a[i+1][j+1]=="#":
			if a[i][j+1]=="#" or \
a[i+2][j+1]=="#" or a[i+1][j+2]=="#" or\
a[i+1][j]=="#":
				continue
			else:
				print("No")
				exit()
print("Yes")

### FIXED CODE ###

h,w=map(int,input().split())
a=["."*(w+2)]
for i in range(h):
	x=input()
	a.append("."+x+".")
a.append("."*(w+2))
for i in range(h):
	for j in range(w):
		if a[i+1][j+1]=="#":
			if a[i][j+1]=="#" or \
a[i+2][j+1]=="#" or a[i+1][j+2]=="#" or\
a[i+1][j]=="#":
				continue
			else:
				print("No")
				exit()
print("Yes")
str = input()
str = list(str)


for index, value in enumerate(str):
    if (value == '?' and index == len(str) - 1):
        str[index] = 'D'

    elif (value == '?' and index != 0 and str[index -] == 'P'):
        str[index] = 'D'

    elif (value == '?' and str[index + 1] == '?'):
        str[index] = 'P'
        str[index + 1] = 'D'
    elif (value == '?'):
    	str[index] = 'D'


print(''.join(str))

### FIXED CODE ###

str = input()
str = list(str)


for index, value in enumerate(str):
    if (value == '?' and index == len(str) - 1):
        str[index] = 'D'

    elif (value == '?' and index != 0 and str[index - 1] == 'P'):
        str[index] = 'D'

    elif (value == '?' and str[index + 1] == '?'):
        str[index] = 'P'
        str[index + 1] = 'D'
    elif (value == '?'):
    	str[index] = 'D'


print(''.join(str))
"""
N/x-1 - N/x >= 1のところを狙っていく
解aだとして、aまではAを+1ずつインクリメントでOK
a以降はN/aからbをデクリメント
"""
N = int(input())

def calc(a,b):
    N = a * b
    n = int((N-1)**0.5)
    cnta = n
    cntb = n
    if a <= n:
        cnta -= 1
    if b <= n:
        cntb -= 1
    ans = cnta + cntb
    if (N-1)//n == n:
        ans -= 1
    # print("cnt",cnta,cntb)
    print(ans)        

for i in range(N):
    a,b = map(int, input().split())
    ans = calc(a,b)


### FIXED CODE ###

"""
N/x-1 - N/x >= 1のところを狙っていく
解aだとして、aまではAを+1ずつインクリメントでOK
a以降はN/aからbをデクリメント
"""
N = int(input())

def calc(a,b):
    N = a * b 
    n = int(N**0.5)-2
    while (n+1)**2 < N:
        n += 1
    if a == b == 1:
        return 0
    cnta = n
    cntb = n
    if a <= n:
        cnta -= 1
    if b <= n:
        cntb -= 1
    ans = cnta + cntb
    # A : 1,2,3,..,n,n+1, 大きい数
    # B : 大きい数,n+1,n,...,3,2,1
    # それぞれペアを見つけながら進んでいけばいいので基本 2*n
    # 1. Aの1~nまでにaが入っていると-1
    # 2. Bの1~nまでにbが入っていると-1
    # 3. n*n+1がabより大きいと成り立たないので-1
    if n*(n+1) >= N:
        ans -= 1
    return ans        

for i in range(N):
    a,b = map(int, input().split())
    ans = calc(a,b)
    print(ans)
A, B = map(int, input(),split())
print(max(0, A-2*B))

### FIXED CODE ###

A, B = map(int, input().split())
print(max(0, A-2*B))
a=int(input())
b=int(input())
c=int(input())
if a==1:
  print("Hello World")
else:
  print(b+c)

### FIXED CODE ###

a=int(input())
if a==1:
  print("Hello World")
else:
  b=int(input())
  c=int(input())
  print(b+c)
import sys 
L,R = map(int, input().split())

if R-L >= 2019:
    print(0)
    sys.exit()
elif R-L == 1:
    print((i*j)%2019)
    sys.exit()

ans = 4000

for i in range(L,R):
    for j in range(i+1,R):
        number = (i*j)%2019
        ans = min(ans,number)

print(ans)  

### FIXED CODE ###

import sys 
L,R = map(int, input().split())

if R-L >= 2019:
    print(0)
    sys.exit()
elif R-L == 1:
    print((R*L)%2019)
    sys.exit()

ans = 4000

for i in range(L,R):
    for j in range(i+1,R+1):
        number = (i*j)%2019
        ans = min(ans,number)

print(ans)
on= input()

on = on.split()
 
if (on[0] != on[1] and on[0] != on[2] and on[1] != on[2]):
    print("No")
elif (on[0] == on[1] and on[0] == on[2] and on[1] == on[2]):
    print("No")

else:
  print("Yes")
  //print(on[0],on[1],on[2]

### FIXED CODE ###

on= input()

on = on.split()
 
if (on[0] != on[1] and on[0] != on[2] and on[1] != on[2]):
    print("No")
elif (on[0] == on[1] and on[0] == on[2] and on[1] == on[2]):
    print("No")

else:
  print("Yes")
n=int(input())
t, a=map(int, input().split())
h=[int(i) for i input().split()]
temp=[abs(a-(t-k*0.006)) for k in h]
print(temp.index(min(temp))+1)


### FIXED CODE ###

n=int(input())
t, a=map(int, input().split())
h=list(int(i) for i in input().split())
temp=[abs(a-(t-k*0.006)) for k in h]
print(temp.index(min(temp))+1)
from scipy.misc import comb

def f(n_str, k):
  while n_str[0] == '0':
    n_str = n_str[1:]
  if n_str == "":
    return 0
  if k == 1:
    return int(n_str[0]) + 9 * (len(n_str) - 1)
  else:
    return (int(n_str[0]) - 1) * f('9' * (len(n_str) - 1), k - 1) + f(n_str[1:], k - 1) + 9 ** k * comb(len(n_str) - 1, k, exact=True)

n = input()
k = int(input())

print(f(n, k))

### FIXED CODE ###

from scipy.misc import comb

def f(n_str, k):
  while len(n_str) > 0 and n_str[0] == '0':
    n_str = n_str[1:]
  if len(n_str) < k:
    return 0
  if k == 1:
    return int(n_str[0]) + 9 * (len(n_str) - 1)
  else:
    return (int(n_str[0]) - 1) * f('9' * (len(n_str) - 1), k - 1) + f(n_str[1:], k - 1) + 9 ** k * (comb(len(n_str) - 1, k, exact=True) if len(n_str) > k else 0)

n = input()
k = int(input())

print(f(n, k))
import math
from decimal import Decimal

a, b, c = map(int, input().split())
a = Decimal(a)
b = Decimal(b)
c = Decimal(c)
if (a.sqrt + b.sqrt < c.sqrt):
    print("Yes")
else:
    print("No")



### FIXED CODE ###

import math
from decimal import Decimal

a, b, c = map(int, input().split())
a = Decimal(a)
b = Decimal(b)
c = Decimal(c)
if (a.sqrt() + b.sqrt() < c.sqrt()):
    print("Yes")
else:
    print("No")
class Stack:
    def __init__(self, max):
        self.max = max  ##max???stack????????§??????
        self.stack = list(range(max)) 
        self.top = 0  ##???????????????????????????0

    def push(self, value):
        self.top += 1
        self.stack[self.top] = value

    def pop(self):
        self.top -= 1
        return self.stack[self.top + 1]


expr = input().split()
stack = Stack(100)

for i in expr:
    try:
        stack.push(int(i))
    except:
        b = stack.pop()
        a = stack.pop()
        if i == '*':
            stack.push(a * b)
        if i == '+':
            stack.push(a + b)
        if i == '-':
            stack.push(a - b)

print(stack.pop())
                

### FIXED CODE ###

x = input().split()
A = []
for i in x:
    try:
        A.append(int(i))
    except:
        b = A.pop()
        a = A.pop()
        if i == '+':
            A.append(a + b)
        if i == '-':
            A.append(a - b)
        if i == '*':
            A.append(a * b)
print(A.pop())
n, k = [int(e) for e in input().split()]
s = input()
s[k] = s[k].lower()
print(s)

### FIXED CODE ###

inputstr1 = input().split()
n = inputstr1[0]
k = inputstr1[1]
s = input()
 
N = int(n)
K = int(k)

ret = ""

for i in range(N):
  if i != K-1:
    ret += s[i]
  else:
    ret += s[i].lower()

print(ret)
import math
from functools import reduce

N =int(input())
A = list(map(int,input().split()))
print(reduce(math.gcd,A))

### FIXED CODE ###

import fractions
from functools import reduce

N =int(input())
A = list(map(int,input().split()))
ans = A[0]
for i in range(1, N):
    ans = fractions.gcd(ans, A[i])
print(ans)
from heapq import heapify, heappop, heappush
import sys
read = sys.stdin.read
readlines = sys.stdin.readlines
input = sys.stdin.readline

H, W = map(int, input().split())
Ch, Cw = map(int, input().split())
Dh, Dw = map(int, input().split())
Ch -= 1
Cw -= 1
Dh -= 1
Dw -= 1
S = [input().rstrip() for _ in [0]*H]
print(S[0])

INF = 10**10
D = [[INF]*W for _ in [0]*H]
used = set()

q = []
heappush(q, (0, Ch*W+Cw))

dirs = [(-1, 0), (1, 0), (0, 1), (0, -1)]
wps = [
    [(-2, -2), (-2, -1), (-2, 0), (-2, 1), (-2, 2), (-1, -1), (-1, 1)],
    [(2, 2), (2, -1), (2, 0), (2, 1), (2, 2), (1, -1), (1, 1)],
    [(-2, 2), (-1, 2), (0, 2), (1, 2), (2, 2), (-1, 1), (1, 1)],
    [(-2, -2), (-1, -2), (0, -2), (1, -2), (2, -2), (-1, -1), (1, -1)]
]

while q:
    d, ij = heappop(q)
    i, j = divmod(ij, W)
    if D[i][j] > d:
        D[i][j] = d
    else:
        continue
    if i == Dh and j == Dw:
        break

    for k, (di, dj) in enumerate(dirs):
        _i = i + di
        _j = j + dj
        if 0 <= _i < H and 0 <= _j < W:
            if S[_i][_j] == '.':
                if D[_i][_j] <= d:
                    continue
                heappush(q, (d, _i*W+ _j))
            else:
                for di, dj in wps[k]:
                    _i = i + di
                    _j = j + dj
                    if 0 <= _i < H and 0 <= _j < W and S[_i][_j] == '.':
                        if D[_i][_j] <= d+1:
                            continue
                        heappush(q, (d+1, _i*W+_j))

ans = D[Dh][Dw]
print(ans if ans < INF else -1)


### FIXED CODE ###

import sys
read = sys.stdin.buffer.read
readlines = sys.stdin.buffer.readlines
input = sys.stdin.buffer.readline
H, W, M = map(int, input().split())

HH = [0]*H
WW = [0]*W
d = set()
for line in readlines():
    h, w = map(int, line.split())
    h -= 1
    w -= 1
    d.add((h, w))
    HH[h] += 1
    WW[w] += 1

m = -1
argm = []
for i, c in enumerate(HH):
    if c > m:
        m = c
        argm = [i]
    elif c == m:
        argm.append(i)

mH = m
aH = argm

m = -1
argm = []
for i, c in enumerate(WW):
    if c > m:
        m = c
        argm = [i]
    elif c == m:
        argm.append(i)

mW = m
aW = argm

ans = mH + mW
for h in aH:
    for w in aW:
        if (h, w) not in d:
            break
    else:
        continue
    break
else:
    ans -= 1

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

if a>b:
    print(Alice)
elif a<b:
    print(Bob)
else:
    print(Drow)

### FIXED CODE ###

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

if a==1:
    a+=13

if b==1:
    b+=13

if a>b:
    print('Alice')
elif a<b:
    print('Bob')
else:
    print('Draw')
a,b = map(int,input().split())
if a%2==1&&b%2==1:
    print("Odd")
else:
    print("Even")

### FIXED CODE ###

a,b = map(int,input().split())
if a%2==1&b%2==1:
    print("Odd")
else:
    print("Even")
import math
pi = math.pi
r = int(input())
print(pi*r*r, 2*pi*r)


### FIXED CODE ###

from math import pi
r = float(input())
print("{0} {1}".format(r * r * pi, (r + r) * pi))
a, b, c = list(map(int, input().split()))

if (a == b == c):
    print(f'{a} {b} {c}')
else:
    a, b = b, a
    a, c = c, a
    print(f'{a} {b} {c}')

### FIXED CODE ###


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

if (a == b == c):
    print(str(a) + ' ' + str(b) + ' ' + str(c))
else:
    a, b = b, a
    a, c = c, a
    print(str(a) + ' ' + str(b) + ' ' + str(c))
a = input().split(" ")
b = input().split(" ").sort()
sum = 0
for i in a[1]:
    sum += i
print(sum)

### FIXED CODE ###

a = input().split(" ")
b = input().split(" ")
c = []
for i in b:
    c.append(int(i))

c.sort()
sum = 0
for i in c[0:int(a[1])]:
    sum += int(i)
print(sum)
N = int(input())
x = list(map(int, input.split()))


for i in 100:
  result = 0
  for j in x:
    result += (i - j)**2
  print(min(result))
    

### FIXED CODE ###

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

ans = 10000000

for i in range(100):
    result = 0
    for j in x:
        result += (j - i )**2
    ans = min(result, ans)
        
print(ans)
n,m = (int(i) for i in input().split())
x = [int(i) for i in input().split()]

if m == 1:
	print(0)
else:
	sorted_x = sorted(x)

	diff_x = []

	for i in range(m-1):
		diff_x.append(sorted_x[i+1] - sorted_x[i])

	for i in range(n-1):
		diff_x.remove(max(diff_x))

	print(sum(diff_x))

### FIXED CODE ###

n,m = (int(i) for i in input().split())
x = [int(i) for i in input().split()]

if n >= m:
	print(0)
else:
	sorted_x = sorted(x)
 
	diff_x = []
	diff = 0
	result = 0
 
	for i in range(m-1):
		diff = sorted_x[i+1] - sorted_x[i]
		result += diff
		diff_x.append(diff)

	sorted_diff = sorted(diff_x, reverse=True)[:n-1]
 
	for i in range(n-1):
		result -= sorted_diff[i]
	 
	print(result)
N, K = map(int, input().split())
A = list(map(int, input().split()))

ans = 0
mod = 10 ** 9 + 7

A.sort()
for i in range(N-K):
    fs = A[i+K] - A[i]
    ans += fs % mod

print(ans % mod)

### FIXED CODE ###

c = input()
print(chr(ord(c)+1))
import math
a,b = list(map(int,input().split()))
g = math.gcd(a,b)
ans = 1
p = []
for i in range(2,g+1): #素数リスト
    k = True
    for j in p:
        if i%j==0:
            k = False
            break
    if k:
        p.append(i)
for i in p:
    if g%i == 0:
        ans += 1
print(ans)

### FIXED CODE ###

def gcd(a,b):
    if a<b:
        tmp = a
        a = b
        b = tmp
    while a!=b and b!= 0:
        c = a%b
        a = b
        b = c
    return a

a,b = list(map(int,input().split()))
g = gcd(a,b)
ans = 1
d = []
p = []
for i in range(1,int(g**0.5)+1): #因数リスト
    if g%i==0:
        if i!=1:
            d.append(i)
        if g//i!=1:
            d.append(g//i)
d = list(dict.fromkeys(d))
        
f = [True]*len(d)
for i in range(len(d)):
    for j in range(i):
        if d[i]>d[j] and d[i]%d[j]==0:
            f[i] = False
        if d[i]<d[j] and d[j]%d[i]==0:
            f[j] = False
print(f.count(True)+1)