Harryxun/stf_run huggingface dataset:
a,b=int(input().split())
print((a+b)//2 if (a+b)%2==0 else 'IMPSSIBLE')

### FIXED CODE ###

a,b=map(int,input().split());print((a+b)//2 if (a+b)%2==0 else 'IMPOSSIBLE')
port math
from queue import Queue
 
n, m = [int(i) for i in input().split()]
 
root = [[ for _ in range(n+1)] for _ in range(n+1)]
 
for i in range(m):
    a, b = [int(i) for i in input().split()]
    root[a][b] = 1
    root[b][a] = 1
 
 
check = [0 for _ in range(n+1)]
check[1] = 1
 
q = Queue()
q.put(1)
 
while ( not q.empty() ):
    now = q.get()
    for i in range(1,n+1):
        if(root[now][i] == 1 and check[i] == 0):
            check[i] = now
            q.put(i)
 
flag = 1
for i in range(2, n+1):
    if(check[i] == 0):
        flag = 0
 
if(flag == 1):
    print("Yes")
    for j in range(2, n + 1):
        print(check[j])
else:
    print("No")

### FIXED CODE ###

import math
from queue import Queue

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

root = [[] for _ in range(n+1)]

for i in range(m):
    a, b = [int(i) for i in input().split()]
    root[a].append(b)
    root[b].append(a)

check = [0 for _ in range(n + 1)]
check[1] = 1

q = Queue()
q.put(1)

while (not q.empty()):
    now = q.get()
    for i in root[now]:
        if (check[i] == 0):
            check[i] = now
            q.put(i)

flag = 1
for i in range(2, n + 1):
    if (check[i] == 0):
        flag = 0

if (flag == 1):
    print("Yes")
    for j in range(2, n + 1):
        print(check[j])
else:
    print("No")
import sys
from functools import lru_cache

sys.setrecursionlimit(10 ** 5)


N, M, K = map(int, input().split())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
n, m = map(len, (A, B))


@lru_cache(None)
def dp(i, j, cur):
    if cur > K:
        return 0
    elif i >= n:
        if j < m and cur + B[j] <= K:
            return dp(i, j + 1, cur + B[j]) + 1
        else:
            return 0
    elif j >= m and cur + A[i] <= K:
        if i < n:
            return dp(i + 1, j, cur + A[i]) + 1
        else:
            return 0
    else:
        res = float('-inf')
        if cur + A[i] <= K:
            res = max(1 + dp(i + 1, j, cur + A[i]), res)
        if cur + B[j] <= K:
            res = max(1 + dp(i, j + 1,  cur + B[j]), res)
        if res == float('-inf'):
            return 0
        else:
            return res


print(dp(0, 0, 0))

### FIXED CODE ###

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

prefix_A = [0] * (N + 1)
for i, a in enumerate(A, 1):
    prefix_A[i] = prefix_A[i - 1] + a
prefix_B = [0] * (M + 1)
for j, b in enumerate(B, 1):
    prefix_B[j] = prefix_B[j - 1] + b


res = 0
for i in range(N + 1):
    cur = prefix_A[i]
    if cur == K:
        res = max(i, res)
    elif cur < K:
        left = 0
        right = M + 1
        while right - left > 1:
            mid = (left + right) // 2
            if cur + prefix_B[mid] <= K:
                left = mid
            else:
                right = mid
        res = max(res, i + left)


print(res)
from sys import stdin
N = int(stdin.readline().rstrip())
A = [int(x) for x in stdin.readline().rstrip().split()]

money = 1000
stock = 0
if A[0] < A[1]:
    stock += (money//A[0])
    money %= A[0]
    
tmp = A[0]
for i in range(1,N):
    if tmp < A[i]:
        if i == N-1:
            money += (stock*A[i])
        if A[i] < A[i+1]:
            tmp = A[i]
            continue
        money += (stock*A[i])
        stock = 0
        tmp = A[i]
    elif tmp > A[i]:
        if i == N-1:
            money += (stock*A[i])
            break
        if A[i] > A[i+1]:
            tmp = A[i]
            continue
        stock += (money//A[i])
        money %= A[i]
        tmp = A[i]
        
print(max(money,1000))

### FIXED CODE ###

from sys import stdin
N = int(stdin.readline().rstrip())
A = [int(x) for x in stdin.readline().rstrip().split()]

money = 1000
stock = 0
cnt = 0
buy = True    

while True:
    if buy == False:
        while True:
            if cnt >= N-1:
                break
            if A[cnt+1] < A[cnt]:
                break
            cnt += 1
        if cnt >= N-1:
            break
        buy = True
        money += (stock*A[cnt])
        stock = 0
    else:
        while True:
            if cnt >= N-1:
                break
            if A[cnt+1] > A[cnt]:
                break
            cnt += 1
        if cnt >= N-1:
            break
        buy = False
        stock += (money//A[cnt])
        money %= A[cnt]
    if cnt >= N-1:
        break
money += (stock*A[-1])
print(max(money,1000))
d, n = map(int, input().split())

print([i for i in range(1, n+1) if i % (100**(d)) != 0][-1] * (100**(d)))

### FIXED CODE ###

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

c = 0
i = 1
while True:
	if i % 100 != 0:
		c += 1
	if c == n:
		break
	i += 1

print(i * (100**(d)))
n = list(map(int,input().split()))
l = list(map(int,input().split()))

length = 0;
answer = 1;
i = 0;

while length + l[i] <= n[1]:
    length = length + l[i]
    answer = answer + 1
    if(len(l) == (i+1)):
        break;
    i = i + 1

#if(answer <= n[0]):
print(answer)
#else:
#    print(n[0])

### FIXED CODE ###

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

if i[0]<i[1]:
    print(0);
else:
    print(10);
n = int(input())
s = input()
print(s.count("ABC"))

### FIXED CODE ###

k, x = map(int, input().split())
if k * 500 >= x:
    print("Yes")
else:
    print("No")
# coding:utf-8
#ab=gl
import math
def main():
    n = int(input())
    ans = 2*n / math.gcd(2,n)
    print(int(ans))



if __name__ == '__main__' :
    main()

### FIXED CODE ###

# coding:utf-8
from fractions import gcd
def main():
    n = int(input())
    ans = 2*n / gcd(2,n)
    print(int(ans))

if __name__ == '__main__' :
    main()
N,H = map(int,input().split())
A = [int(i) for i in input().split()]
A.sort(reverse = True)
B = max(0,N-(A[0]+A[1]))
if B > 0:
    print("No")
else:
    print("Yes")

### FIXED CODE ###

N,H = map(int,input().split())
A = [int(i) for i in input().split()]
B = max(0,N-sum(A))
if B > 0:
    print("No")
else:
    print("Yes")
a,b,c=map(int,input().split))
if a<b<c:
    print('Yes')
else:
    print('No')


### FIXED CODE ###

a,b,c=map(int,input().split())
if a<b<c:
    print('Yes')
else:
    print('No')
s=input()
ss=s[0]
sss=upper(ss)
print("A"+sss+"C")

### FIXED CODE ###

s=input()
ss=s[8]
print("A"+ss+"C")
n=int(input())

import array from numpy

i=0
o=array([0 0 0])
while i<n
   t,x,y=map(int,input().split())
   z=array([t x y])
   w=z-o
   a,b=map(str,bin(w[1]),bin(w[2]+w[3]))

   if w[1]<w[2]+w[3]:
       print("No")
       break

   else:
       if a==b:
           o=o+w
           i=i+1
       else:
           print("No")
           break
else:
    print("Yes")


### FIXED CODE ###

n=int(input())

from numpy import array

i=0
o=array([0,0,0])
while i<n:
   c=list(map(int,input().split()))
   z=array(c)
   w=z-o
   a,b=map(int,[w[0],abs(w[1])+abs(w[2])])

   if a<b:
       print("No")
       break

   else:
       if (a+b)%2==0:
           o=z
           i=i+1
       else:
           print("No")
           break
else:
    print("Yes")
n = int(input())
a = []
for i in range(n):
    a.append(input())
for i in range(n):
    a[i].extend(a[i])
for i in range(n):
    a.append(a[i])


x = 0

for i in range(n):
    for j in range(n):
        for k in range(j+1):
            if a[i+j][k]==a[i+k][j]:
                continue
            else:
                break
        else:
            continue
        break
    else:
        x += 1

print(n*x)

 

### FIXED CODE ###

N = int(input())
S = []
for i in range(N):
    S.append(input())

def check(S, A, B):
    for i in range(N):
        for j in range(i+1, N):
            if S[i][j] != S[j][i]:
                return 0
    return 1

cnt = 0
for i in range(N):
    cnt += check(S[i:] + S[:i], 0, 0)
print(cnt * N)
n = input()
kakeru = list(map(int, input().split()))
kakekake = kakeru[0]
    for i in range(n-2):
        kakekake = kakekake * kakeru[i+1]
if kakekake > 10**18:
    print(-1)
print(kakekake)

### FIXED CODE ###

n = int(input())
b = 1
a = list(map(int,input().split()))
if 0 in a:
    print(0)
else:
    for i in range(n):
        b *= a[i]
        if b > 10**18:
            print(-1)
            break
    if b <=10**18:
        print(b)
def main():
    n = int(input().strip())
    a = [int(i) for i in input().split(' ')]

    c = n
    for i in range(n):
        s1, s2 = a[i], a[i]
        for j in range(i+1, n):
            s1 |= a[j]
            s2 += a[j]
            if s1 == s2:
                c += 1
            
    print(c)

if __name__ == '__main__':
    main()


### FIXED CODE ###



def main():
    a, b = [int(x.strip()) for x in input().split()]
    c = max(a + b, a - b, a * b)

    print(c)

if __name__ == '__main__':
    main()
from collections import deque
import sys
def LI(): return [int(x) for x in sys.stdin.readline().split()]
def MI(): return map(int, sys.stdin.readline().split())
def II(): return int(sys.stdin.readline())


H, W = MI()
N = II()
a = LI()
color = deque()
ans = [[0] * W for _ in range(H)]
# visited = [[0] * W for _ in range(H)]
x_diff = [-1, 0, 1, 0]
y_diff = [0, 1, 0, -1]

for i, num in enumerate(a):
    for j in range(num):
        color.append(i + 1)

# coordinate_q = deque()
# coordinate_q.append([0, 0])
# visited[0][0] = 1
# ans[0][0] = color.popleft()

"""
while len(coordinate_q) != 0:
    y_tmp, x_tmp = coordinate_q.popleft()
    for i in range(4):
        y, x = y_tmp + y_diff[i], x_tmp + x_diff[i]
        if 0 <= y <= H-1 and 0 <= x <= W-1 and visited[y][x] == 0:
            ans[y][x] = color.popleft()
            visited[y][x] = 1
            coordinate_q.append([y, x])
"""

"""
for i in range(H):
    for j in range(W):
        if i % 2 == 0:
            ans[i][j] = color.popleft()
        else:
            ans[i][-(j+1)] = color.popleft()
"""

def tansaku(y, x):
    if visited[y][x] == 1:
        return
    visited[y][x] = 1
    ans[y][x] = color.popleft()
    for i in range(4):
        ny = y + y_diff[i]
        nx = x + x_diff[i]
        if 0 <= ny <= H-1 and 0 <= nx <= W-1:
            tansaku(ny, nx)

visited = [[0] * W for _ in range(H)]
tansaku(0, 0)

for i in range(H):
    for j in range(W):
        print(ans[i][j], end=' ')
    print('')


### FIXED CODE ###

from collections import deque
import sys
def LI(): return [int(x) for x in sys.stdin.readline().split()]
def MI(): return map(int, sys.stdin.readline().split())
def II(): return int(sys.stdin.readline())


H, W = MI()
N = II()
a = LI()
color = deque()
ans = [[0] * W for _ in range(H)]
# visited = [[0] * W for _ in range(H)]
# x_diff = [-1, 0, 1, 0]
# y_diff = [0, 1, 0, -1]

for i, num in enumerate(a):
    for j in range(num):
        color.append(i + 1)

# coordinate_q = deque()
# coordinate_q.append([0, 0])
# visited[0][0] = 1
# ans[0][0] = color.popleft()

"""
while len(coordinate_q) != 0:
    y_tmp, x_tmp = coordinate_q.popleft()
    for i in range(4):
        y, x = y_tmp + y_diff[i], x_tmp + x_diff[i]
        if 0 <= y <= H-1 and 0 <= x <= W-1 and visited[y][x] == 0:
            ans[y][x] = color.popleft()
            visited[y][x] = 1
            coordinate_q.append([y, x])
"""

for i in range(H):
    for j in range(W):
        if i % 2 == 0:
            ans[i][j] = color.popleft()
        else:
            ans[i][-(j+1)] = color.popleft()

for i in range(H):
    for j in range(W):
        print(ans[i][j], end=' ')
    print('')
# -*- coding: utf-8 -*-
# 整数の入力
N = int(input())

x0, y0, h0 = map(int, input().split())
for i in range(N):
  xi, yi, hi = map(int, input().split())
  if xi-x0 == abs(xi-x0):
    hx = hi + (100 -xi)
  else:
    hx = hi +xi

  if yi-y0 == abs(yi-y0):
    hy = hx + (100 -yi)
  else:
    hy = hx +yi

print(hy)

### FIXED CODE ###

# -*- coding: utf-8 -*-
# 整数の入力
N = int(input())
if N==1:
  print("Hello World")
else:
  a = int(input())
  b = int(input())
  print(a+b)
from collections import defaultdict, deque
n = int(input())
s = input()
dic = defaultdict(list)
used = [0]*(n+1)
ans = 0


def search(lst, a):
    global ans
    n_dic = defaultdict(list)
    for i in lst:
        used[i] = 1
        if used[i+1] == 0 and i < n-1:
            n_dic[s[i+1]].append(i+1)
    for n_lst in n_dic.values():
        if len(n_lst) >= 2:
            for j in range(len(n_lst)):
                for k in range(j+1, len(n_lst)):
                    n_lst = [n_lst[j], n_lst[k]]
                    search(n_lst, a+1)
    ans = max(ans, a)

for i in range(n):
    dic[s[i]].append(i)

for lst in dic.values():
    c_lst = []
    if len(lst) >= 2:
        search(lst, 1)
    else:
        used[lst[0]] = 1
print(ans)


### FIXED CODE ###

import sys
input = sys.stdin.readline
n = int(input())
s = input()
dp = [[0]*(n+1) for y in range(n+1)]
ans = 0

for i in range(n):
    a = n-1-i
    for j in range(n):
        b = n-1-j
        if s[a] == s[b]:
            dp[a][b] = dp[a+1][b+1] + 1
for i in range(n):
    for j in range(n):
        now = min(dp[i][j], j-i)
        ans = max(ans, now)
print(ans)
import math
import sys

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

zahyo = list(map(lambda x : int(x),input().split()))

zahyo.append(x)
zahyo.sort()

min = zahyo[1] - zahyo[0]

is_odd = False
is_even = False

odds = list()

for i in range(n):
    diff = zahyo[i+1] - zahyo[i]

    if diff % 2 == 0:
        is_even == True
    else:
        is_odd = True
        odds.append(diff)

    if diff < min:
        min = zahyo[i+1] - zahyo[i]

# print(is_odd)
# print(is_even)

for i in range(len(odds)):
    for j in range(len(odds)):
        if math.gcd(odds[i], odds[j]) == 1:
            print(1)
            sys.exit()


if is_odd == True and is_even == True:
    print(1)
else:
    print(min)


### FIXED CODE ###

import math
from functools import reduce
import fractions
import sys


def gcd(*numbers):
    return reduce(fractions.gcd,numbers)


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

zahyo = list(map(lambda x : int(x),input().split()))

zahyo.append(x)
zahyo.sort()

min = zahyo[1] - zahyo[0]

is_odd = False
is_even = False

odds = list()

for i in range(n):
    diff = zahyo[i+1] - zahyo[i]

    if diff % 2 == 0:
        is_even == True
    else:
        is_odd = True
        odds.append(diff)

    if diff < min:
        min = zahyo[i+1] - zahyo[i]

# print(is_odd)
# print(is_even)
if is_odd == True and is_even == True:
    print(1)
    sys.exit()

elif is_odd == True:
    print(gcd(*odds))
else:

    print(min)
N=int(input())
a=[int(x) for x in input().split()]
b=0
for i in range(N):
    b+=1/a[i]
    
print(1/b)

### FIXED CODE ###

a=int(input())
s=input()
if a>=3200:
    print(s)
else:
    print('red')
N = int(input())
ori = [int(i) for i in input().split()]
#print(N,ori)
count = ori.count(1)
#print(count)
if count == 0:
    print(-1)
Break = 0
quit  = 0
for j in range(1,N+1):
    for i in range(Break+1,N):
        if ori[i] == j:
            Break = i
            #print(Break)
            #print(savepoint)
            #print(j,i)
            sub = j
            break
        #else: 
            #quit = 1
            #break
    #if quit == 1:
        #print(quit)
        #break
print(Break+1-sub)

### FIXED CODE ###

N = int(input())
ori = [int(i) for i in input().split()]
count = ori.count(1)
if count == 0:
    print(-1)

else:
    savepoint = 0
    for j in range(1,N+1):
        for i in range(savepoint,N):
            if ori[i] == j:
                savepoint = i
                #print(savepoint)
                #print(j,i)
                sub = j
                break
        if i == N-1:
            break
    print(N-sub)
N=int(input())
A=list(map(int, input().split()))

if N%2:
  A = A+ [0]
  
Adict={}
for a in A:
  Adict[a] = Adict.get(a, 0) +1

# 0,0,2,2,4,4  5   (i//2)*2 + 1- N%2 0,2,4
# 1,1,3,3,5,5  6

if all([Adict[i]==2 for i in range(1-N%2, N, 2)]):
  print(2**(N//2))
else:
  print(0)

### FIXED CODE ###

n = int(input())
A = list(map(int, input().split()))
mod=int(1e9+7)

memo={i:0 for i in range(n)}
for a in A:
  memo[a]=memo.get(a,0)+1

answer=1
if n%2:
  if memo[0]!=1:
    print(0)
    exit()
  for i in range(1, (n+1)//2):
    if memo[2*i]!=2:
      print(0)
      exit()
    else:
      answer = 2*answer %mod
elif not n%2:
  for i in range(n//2):
    if memo[2*i+1]!=2:
      print(0)
      exit()
    else:
      answer = 2*answer %mod
      
print(answer)
N ,X, Y = map(int, input().split())

X -= 1
Y -= 1
k = [0]*N

for i in range(N-1):
    for j in range(i+1, N):
        a = j-i
        b = abs(i-x)+1+abs(y-j)
        c = abs(j-x)+1+abs(y-i)
        m =  min(a, b, c)
        k[m] += 1

for i in range(1, N):
    print(k[i])

### FIXED CODE ###

N ,X, Y = map(int, input().split())

X -= 1
Y -= 1
k = [0]*N

for i in range(N-1):
    for j in range(i+1, N):
        a = j-i
        b = abs(i-X)+1+abs(Y-j)
        c = abs(j-X)+1+abs(Y-i)
        m =  min(a, b, c)
        k[m] += 1

for i in range(1, N):
    print(k[i])
N = int(input())

input_list = []
tmplist = []

for i in range(N):
  input_list.append(int(input()))

for i in input_list:
  tmplist = input_list[:]
  tmplist.remove(i)
  print(max(tmplist))

### FIXED CODE ###

r = int(input())
print(3*r**2)
A, B, K = list(map(int, input().split()))

diff = abs(A - B)
a_is_higher = A > B

if K <= diff:
  if a_is_higher:
  	print(A-K, B)
  else:
    print(A, B-K)
else:
  if a_is_higher:
  	A -= diff
  else:
    B -= diff
  K -= diff
  div, mod = divmod(K, 2)
  
  nA = A - div
  nB = B - div
  
  if mod:
    nA -= 1
  
  nA = max(0, nA)
  nB = max(0, nB)
  
  print(nA, nB)

### FIXED CODE ###

a, b = input().split()

print(b+a)
a,b = (int(x) for x in input().split

if a == b:
       print ("Yes")
else:
       print ("No")

### FIXED CODE ###

a,b=(int(x) for x in input().split())
if a == b:
  print("Yes")
else:
  print("No")
A, B, C, K = map(int, input().split())
Maxpos = 0

if A == K:
    print(A)
    quit()
List1 = [1]*A
List2 = [0]*A
List3 = [-1]*A
List = List1+List2+List3
print(sum(List[:K]))

### FIXED CODE ###

a, b, c, k = map(int, input().split())
if k > a:
    af = k - a
    ab = abs(af-b)
    print(a-ab)
else:
    print(k)
from collections import Counter
# python template for atcoder1
import sys
sys.setrecursionlimit(10**9)
input = sys.stdin.readline

MOD = 10**9+7


def comb2(N):
    return int(N*(N-1)/2)


N = int(input())
prev = -1
Col = []
for _ in range(N):
    c = int(input())
    if c == prev:
        continue
    else:
        prev = c
        Col.append(c)


cntF = [0]*(N+1)
forward = [0]*(len(Col)+1)
for i, c in enumerate(Col):
    forward[i] = cntF[c]
    cntF[c] += 1

cntB = [0]*(N+1)
back = [0]*(len(Col)+1)
for i in reversed(range(len(Col))):
    c = Col[i]
    back[i] = cntB[c]
    cntB[c] += 1

ans = 1+sum(forward)
for i in range(1, len(Col)-1):
    ans = ans + forward[i]*back[i+1]
    ans %= MOD
print(ans)


### FIXED CODE ###

N = int(input())
C = [-1]

for _ in range(N):
    c = int(input())
    if c == C[-1]:
        continue
    else:
        C.append(c)

MOD = 10**9+7
dp = 1
prev = [0]*(max(C)+1)

for c in C[1:]:
    dp = (dp+prev[c]) % MOD
    prev[c] = dp
print(dp)
print(float(input())*2*3.14

### FIXED CODE ###

print(float(input())*2*3.14)
hoge=[]
for i in range(0,1):
  a=int(input())
  hoge.append(a)
R=hoge[0]
G=hoge[1]
print(2*G-R)

### FIXED CODE ###

a = []
for i in range(2):
    a.append(input()) 
R=int(a[0])
G=int(a[1])
print(2*G-R)
def main():
    a, b = map(int, input().split())
    s, k = '.#'
    ans = [[k] * 100 for _ in range(50)] + [[s] * 100 for _ in range(50)]
    col = 0
    row = 0
    for _ in range(a - 1):
        ans[row][col] = s
        col += 2
        if col == 100:
            col = 0
            row += 2
    col = 0
    row = 99
    for _ in range(a - 1):
        ans[row][col] = k
        col += 2
        if col == 100:
            col = 0
            row -= 2
    print(100, 100)
    for row in ans:
        print(''.join(row))

if __name__ == '__main__':
    main()


### FIXED CODE ###

def main():
    n = int(input())
    xx = [0] + list(map(int, input().split())) + [0]
    all_cost = sum(abs(xx[i+1] - xx[i]) for i in range(n+1))
    for i in range(n):
        a, b, c = xx[i:i+3]
        print(all_cost - abs(b - a) - abs(c - b) + abs(c - a))


if __name__ == '__main__':
    main()
N, M = map(int, input().split())

P = {}
A = []
B = []

for _ in range(M):
    a, b = map(int, input().split())
    A.append(a)
    B.append(b)

for i in range(0, N + 1):
    P[i] = []

for a, b in zip(A, B):
    P[b].append(a)
    P[a].append(b)

ans = [0] * (N + 1)
ans[1] = 1

def search(numbers):
    next_numbers = []
    for number in numbers:
        for x in P[number]:
            if ans[x] == 0:
                ans[x] = number
                next_numbers.append(x)
    if next_numbers:
        search(next_numbers)

search([1])

print('Yes')
for i in range(2, N + 1):
    print(ans[i])

### FIXED CODE ###

N, M = map(int, input().split())

A = []
B = []

for _ in range(M):
    a, b = map(int, input().split())
    A.append(a)
    B.append(b)

P = [[] for _ in range(N + 1)]

for a, b in zip(A, B):
    P[b].append(a)
    P[a].append(b)

ans = [0] * (N + 1)
ans[1] = 1
next_numbers = [1]

while next_numbers:
    check_number = next_numbers[:]
    next_numbers = []
    for number in check_number:
        for x in P[number]:
            if ans[x] == 0:
                ans[x] = number
                next_numbers.append(x)

print('Yes')
for i in range(2, N + 1):
    print(ans[i])
length0 = input()
length = length0.split()
a = length[0]
b = length[1]
area = a*b
per = 2*a+2*b
print(a," ",b)


### FIXED CODE ###

length0 = input()
#print(length0)
length = length0.split()
a = int(length[0])
b = int(length[1])
#print(str(a)+" "+str(b))
area = a*b
per = 2*a+2*b
print(str(area)+" "+str(per))
#import itertools

n,m,q = map(int,input().split())

abcd = [input() for _ in range(q)]

#x = itertools.product(range(1,m+1),repeat=n)
x = []
for i in range(1,m+1):
  for j in range(i,m+1):
    for k in range(j, m+1):
      for l in range(k,m+1):
        x.append([i,j,k,l])
tmp = 0
ans = 0
for xi in x:
  tmp = 0
  for i in abcd:
    a,b,c,d = map(int,i.split())
    if xi[b-1] - xi[a-1] == c:
      tmp += d
  ans = max(ans,tmp)

print(ans)

### FIXED CODE ###

import itertools

n,m,q = map(int,input().split())

a = [0] * q
b = [0] * q
c = [0] * q
d = [0] * q

for i in range(q):
  a1,b1,c1,d1 = map(int,input().split())
  a[i] = a1
  b[i] = b1
  c[i] = c1
  d[i] = d1

x = itertools.combinations_with_replacement(range(1,m+1),n)
tmp = 0
ans = 0
for xi in x:
  tmp = 0

  for i in range(q):
    if xi[b[i]-1] - xi[a[i]-1] == c[i]:
      tmp += d[i]
  ans = max(ans,tmp)

print(ans)
N = input()
a = list(map(int, input().split()))
amax = max(a)
a.pop(amax)
sum = 0
for i in a:
  sum += i
if amax < sum:
  print("Yes")
else:
  print("No")

### FIXED CODE ###

N = input()
a = list(map(int, input().split()))
amax = max(a)
a.remove(amax)
sum = 0
for i in a:
  sum += i
if amax < sum:
  print("Yes")
else:
  print("No")
s_=input()
t=input()


t_s=len(s_)-len(t)
t_e=t_s+len(t)
for t_s in range(t_s,-1,-1):
    s=s_[:t_s]+t+s_[t_e:]
    if(re.match(s_.replace("?","."),s)):
        s=s.replace("?","a")
        print(s)
        break
else:
    print("UNRESTORABLE")

### FIXED CODE ###

s_=input()
t=input()
 
filled_idx=[i for i in range(len(s_)) if s_[i]!="?"]
 
for t_s in range(len(s_)-len(t),-1,-1):
    t_e=t_s+len(t)
    s=s_[:t_s]+t+s_[t_e:]
    if(all(s[i]==s_[i] for i in filled_idx)):
        s=s.replace("?","a")
        print(s)
        break
else:
    print("UNRESTORABLE")
int x
print(x**3)

### FIXED CODE ###

x=int(input())
print(x*x*x)
import math

m = math.floor(n/2)
if n>2:
    q = int( n / m )
    lm= m
    s = n - 1
else:
    s = 0

while( m>1 ):
    m = math.floor(n/(q+1))
    r0 = n % ( m + 1 )
    if r0>=q:
        d= r0  - q
        if d%q==0:
            s+= ( m+1+int(d/q) )
    #
    # for next
    q = int( n/m )
    lm= m
#
print( s )


### FIXED CODE ###

import math
n= int(input())

m = math.floor(n/2)
if n>2:
    q = int( n / m )
    lm= m
    s = n - 1
else:
    s = 0

while( m>1 ):
    m = math.floor(n/(q+1))
    r0 = n % ( m + 1 )
    if r0>=q:
        d= r0  - q
        if d%q==0:
            s+= ( m+1+int(d/q) )
    #
    # for next
    q = int( n/m )
    lm= m
#
print( s )