Harryxun/stf_run huggingface dataset:
n=list(input())
if a in n and b in n and c in n:
  print("Yes")
else:
  print("No")

### FIXED CODE ###

a = input()
if "".join(sorted(a))=="abc":
  print("Yes")
else:
  print("No")
from functools import reduce
import fractions

def lcm_base(x, y):
    return (x * y) // fractions.gcd(x, y)

def lcm(*numbers):
    return reduce(lcm_base, numbers, 1)

def lcm_list(numbers):
    return reduce(lcm_base, numbers, 1)

N = int(input().rstrip())
As = input().rstrip().split(" ")
As = [int(p) for p in As]

cand = lcm_list(As)

ans = sum([l // x for x in a]) % int(1e9+7)
print(ans)


### FIXED CODE ###

from functools import reduce
import fractions

def lcm_base(x, y):
    return (x * y) // fractions.gcd(x, y)

def lcm(*numbers):
    return reduce(lcm_base, numbers, 1)

def lcm_list(numbers):
    return reduce(lcm_base, numbers, 1)

N = int(input().rstrip())
As = input().rstrip().split(" ")
As = [int(p) for p in As]

cand = lcm_list(As)

sum = 0

for num in As:
    sum = sum + cand // num

print(sum % int(1e9+7) )
def max_minus_min(areas):
    # print("areas", areas)
    return max(areas) - min(areas)
 
def solve2(h, w):
    area1 = h * (w // 2)
    area2 = h * w - area1
    return area1, area2
 
def solve(h, w):
    w_div_3 = w // 3;
    ans = 1e9
    for w2 in range(w_div_3, w_div_3 + 2):
        area1 = w2 * h
        ans = min(ans, max_minus_min([area1, *solve2(h, w - w2)]))
        ans = min(ans, max_minus_min([area1, *solve2(w - w2, h)]))
    return ans
 
H, W = map(int, input().split())
print(min(solve(H,W), solve(W,H)))


### FIXED CODE ###

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

# import array
# from bisect import *
# from collections import *
# import fractions
# import heapq 
# from itertools import *
# import math
# import re
# import string

def max_minus_min(areas):
    # print("areas", areas)
    return max(areas) - min(areas)

def solve2(h, w):
    area1 = h * (w // 2)
    area2 = h * w - area1
    return [area1, area2]

def solve(h, w):
    w_div_3 = w // 3;
    ans = 1e9
    for w2 in range(w_div_3, w_div_3 + 2):
        area1 = w2 * h
        ans = min(ans, max_minus_min([area1] + solve2(h, w - w2)))
        ans = min(ans, max_minus_min([area1] + solve2(w - w2, h)))
    return ans

H, W = map(int, raw_input().split())
print(min(solve(H,W), solve(W,H)))
from math import floor
A = int(input())
B = float(input())
print(floor(A*B))


### FIXED CODE ###

from math import floor
A,B = input().split()
B="".join(B.split("."))
A=int(A)
B=int(B)
print(int(A*B//100))
a,b,V = map(int, input().split())
x = V/(a*a)

def f(theta):
    if np.tan(theta) < (2*x)/a:
        l = x + a*np.tan(theta)/2
    else:
        l = (2*a*x*np.tan(theta))**0.5
    return l >= b


eps = 10**-12
def  binarySearch(l,r):
    while r - l > eps:
        mid = (l+r)/2
        if f(mid):
            r = mid
        else:
            l = mid
    return r

print(binarySearch(-1*np.pi/180,(np.pi/2-eps))*180/np.pi)


### FIXED CODE ###

import numpy as np
a,b,V = map(int, input().split())
x = V/(a*a)
if b >= 2*x:
    tan = b**2/(2*a*x)
else:
    tan = 2*(b-x)/a
ans = np.arctan(tan)
print(ans*180/np.pi)
N, K = list(map(int,input().split()))
 
A = list(map(int,input().split()))
 
for i in range(N - K):
  if A[i] < A[i + K + 1]:
    print("Yes")
  else:
    print("No")

### FIXED CODE ###

N, K = list(map(int,input().split()))
 
A = list(map(int,input().split()))
 
for i in range(N - K):
  if A[i] < A[i + K]:
    print("Yes")
  else:
    print("No")
import math
X = int(input())

def f(x):
  return math.log(x)/100.01

print(math.ceil(f(x)))

### FIXED CODE ###

X = int(input())
count = 0
money =100

while True:
  money = int(money*1.01)
  count +=1
  if money >= X:
    break
print(count)
def next_array(array)#辞書式に次の配列を与える関数
	s = -1
	for x in array[::-1]:
    	if x < M:
        	break
        else:
        	s -= 1
    #Mより小さい最後の項を取得
    
    if s >= -N:#その項を１増やす
      array[s] += 1
      for i in range(s,0)#以降の項を全て同じ値に
      	array[i] = array[s]
        
	return array

def score(array, rules)#点数計算
	scr = 0
	for rule in rules:
    	if (array[rule[1]-1] - array[rule[0]-1] == rule[2]):
        	scr += rule[3]
    return scr


# input
N, M, Q = map(int, input().split())
rules = []
for i in range(Q):
    a, b, c, d = map(int, input().split())
    rules.append([a, b, c, d])
    
array　= [1] * N
max_scr = 0

while True:
  max_scr = max(max_scr, score(array,rules)) 
  if array[0] == M:#全探索完了
    break 
  array = next_array(array)#次の配列へ
  
    

  

    
        	

### FIXED CODE ###

def next_array(array):#辞書式に次の配列を与える関数
  s = -1
  for x in array[::-1]:
    if x < M:
      break
    else:
      s -= 1
    #Mより小さい最後の項を取得
  
  if s >= -N:
    array[s] += 1#その項を１増やす
    if s < -1:
      for i in range(s+1,0):#以降の項を全て同じ値に
        array[i] = array[s]

  return array
 
def score(array, rules):#点数計算
  scr = 0
  for rule in rules:
    if (array[rule[1]-1] - array[rule[0]-1] == rule[2]):
      scr += rule[3]
      
  return scr
 
# input
N, M, Q = map(int, input().split())
rules = []
 
for i in range(Q):
  a, b, c, d = map(int, input().split())
  rules.append([a, b, c, d])
  
array = [1] * N
max_scr = 0
 
while True:
  max_scr = max(max_scr, score(array,rules)) 
  if array[0] == M:#全探索完了
    break 
  array = next_array(array)#次の配列へ
    
print(max_scr)
n = int(input())
a_list = list(map(int, input().split()))
a_list.sort(reverse=True)
ans = 0
for i in range(0, n - 1):
    ans += A[(i + 1) // 2]
print(ans)

### FIXED CODE ###

n = int(input())
a_list = list(map(int, input().split()))
a_list.sort(reverse=True)
ans = 0
for i in range(0, n - 1):
    ans += a_list[(i + 1) // 2]
print(ans)
s=input()
k=int(input())
A={}
for i in range(26):
  A[chr(ord('a') + i)]=26-i
C=[]
for ss in s:
  C.append(A[ss])
ans=""
for i in range(len(s)):
  if i==len(s)-1:
    ans+=chr(ord(s[-1])+k)
  elif k>=C[i]:
    ans+="a"
    k-=C[i]
  else:
    ans+=s[i]
print(ans)

### FIXED CODE ###

s=input()
k=int(input())
A={}
for i in range(26):
  A[chr(ord('a')+i)]=26-i
C=[]
for ss in s:
  C.append(A[ss])
ans=""
for i in range(len(s)):
  if i==len(s)-1:
    k%=26
    if ord(s[-1])+k>122:
      ans+=chr(ord(s[-1])+k-26)
    else:
      ans+=chr(ord(s[-1])+k)
  elif s[i]!="a" and k>=C[i]:
    ans+="a"
    k-=C[i]
  else:
    ans+=s[i]
print(ans)
count = {'AC' : 0,'WA' : 0,'TLE': 0,'RE' : 0 }
n = int(input)
for i in range(0,n):
  count[input()]+=1
ptrint('AC x '+count['AC'])
ptrint('WA x '+count['WA'])
ptrint('TLE x '+count['TLE'])  
ptrint('RE x '+count['RE'])

### FIXED CODE ###

N = int(input())
S = {'AC':0, 'WA':0, 'TLE':0, 'RE':0}
for i in range(N):
    S[input()] += 1
for a in S:
    print(a + " x " + str(S[a]))
var S = input('先週開催されたコンテストは？')

if S == 'ABC':
  print('ARC')
elif S == 'ARC':
  print('ABC')


### FIXED CODE ###

s = input()
a = ["ABC", "ARC"]
print(a[(a.index(s)+1)%len(a)])
*a = map(int,input.split())
print(max(a) - min(a))


### FIXED CODE ###

*a, = map(int,input().split())
print(max(a) - min(a))
#include <math.h>

#include <algorithm>
#include <iostream>
#include <map>
#include <string>
#include <vector>

using namespace std;

int main() {
  int N;
  cin >> N;
  vector<long double> V(N);
  for (size_t i = 0; i < N; i++) {
    cin >> V[i];
  }

  while (V.size() != 1) {
    sort(V.rbegin(), V.rend());
    int a = V.back();
    V.pop_back();
    int b = V.back();
    V.pop_back();
    V.push_back((long double)(a + b) / (long double)2.0);
  }

  printf("%lf\n", V[0]);

  return 0;
}


### FIXED CODE ###

#coding: utf-8

N = int(input())
V = [int(v) for v in input().split()]

for i in range(N-1):
    V.sort()
    V.append((V[0]+V[1])/2)
    V = V[2:]

print (V[0])
n=int(input())
a_list=[str(i)*3 for i in range(1,10)]

for i in range(1,9):
  if a_list[i]< n <= a_list[i+1]:
    print(a_list[i+1])
    break
  elif a_list[i]= n:
    print(a_list[i])
    break
    
    

### FIXED CODE ###

n=int(input())
a_list=[str(i)*3 for i in range(1,10)]
flag=False

for i in range(0,9):
  if int(a_list[i])==n:
    print(a_list[i])
    flag=True
    break
  elif n < 111:
    print("111")
    break
if flag==False:
  for i in range(0,8):
    if int(a_list[i])< n < int(a_list[i+1]):
      print(a_list[i+1])
      break
n = int(input())
a = [int(input()) for _ in range(n)]
print(sorted(set(a))[-2])

### FIXED CODE ###

n = int(input())
a = sorted(map(int, input().split()))
print(a[-1] - a[0])
from math import gcd


def answer():
    def make_divisors(n):
        divisors = []
        for i in range(1, int(n ** 0.5) + 1):
            if n % i == 0:
                divisors.append(i)
                if i != n // i:
                    divisors.append(n // i)

        # divisors.sort()
        return divisors

    a, b = map(int, input().split())
    g = gcd(a, b)
    divisors = make_divisors(g)
    set_divisors = set(divisors)

    for div1 in divisors[1:]:
        for div2 in divisors[1:]:
            item = div1*div2
            if item in set_divisors:
                set_divisors.remove(item)

    print(len(set_divisors))


if __name__ == '__main__':
    answer()


### FIXED CODE ###

from fractions import gcd

def answer():
    def make_divisors(n):
        divisors = []
        for i in range(1, int(n ** 0.5) + 1):
            if n % i == 0:
                divisors.append(i)
                if i != n // i:
                    divisors.append(n // i)

        divisors.sort()
        return divisors

    a, b = map(int, input().split())
    g = gcd(a, b)
    divisors = make_divisors(g)

    length = len(divisors)
    removed = 1

    for i in range(1, length):
        d1 = divisors[i]
        for d2 in divisors[i:-1]:
            if d1 * d2 in divisors:
                divisors.remove(d1*d2)
                removed += 1
        if i + removed >= length:
            break

    print(length - removed + 1)


if __name__ == '__main__':
    answer()
import collections

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

g = [[] for i in range(n+1)]

for i in range(n-1):
    a,b = map(int,input().split())
    g[a].append(b)
    g[b].append(a)
    
check = [0] * (n+1)
count = [0] * (n+1)

for i in range(q):
    p,x = map(int,input().split())
    count[p] += x
    
def dfs(v):
  for u in g[v]:
    if check[u]==1:
      continue
    check[u]=1
    count[u]+=count[v]
    dfs(u)
 

check[1] = 1
dfs(1)

print(*count[1:])

### FIXED CODE ###

import collections

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

g = [[] for i in range(n+1)]

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

count = [0] * (n+1)
check = [0] * (n+1)

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

q = collections.deque()  
q.append(1)

while q:
    v = q.pop()
    check[v] = 1
    for u in g[v]:
        if check[u] == 1:
            continue
        count[u] += count[v]
        q.append(u)
        
print(*count[1:])
n=int(input())
mod=n%10
if mod==3:
  print('bon')
elif mod==0,1,6,8:
  print('pon')
else:
  print('hon')


### FIXED CODE ###

num=int(input())
mod=num%10
if mod==3:
  print('bon')
elif mod in [0,1,6,8]:
  print('pon')
else:
  print('hon')
X ,N = map(int,input().split())
P = list(map(int,input().split()))
A = list(range(min(P),max(P)))
P.sort()
ans = 0
min = 100
if N == 0:
    print(X)
    exit(0)


for a in A:
    if a not in P:
        if abs(a-X) < min:
            min = abs(a-X)
            ans = a
print(ans)

### FIXED CODE ###

X ,N = map(int,input().split())
P = list(map(int,input().split()))
if N == 0:
    print(X)
    exit(0)
A = list(range(0,102))
ans = 0
mins = 100


for a in A:
    if a not in P:
        if abs(a-X) < mins:
            mins = abs(a-X)
if (X - mins) not in P:
    print(X-mins)
else:
    print(X+mins)
a,b = list(map(int,input().split()))
for i in range(10)
   if b**i <= a < b**(i+1):
      ans = i
      break
    else:
      ans = no
print(ans)
      

### FIXED CODE ###

n,k = list(map(int,input().split()))
for i in range(100):
  if k**i <= n < k**(i+1):
    print(i+1)
A = list[map(int, input().split())]

print(A.index(0) + 1)

### FIXED CODE ###

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

print(A.index(0) + 1)
m = int(input())
ans = 0
num = ""
for i in range(m):
    d, c = map(int, input().split())
    if d == 0:
        ans += c
    else:
        k = str(d) * c
        while len(k) != 1:
            k = str(int(k[0]) + int(k[1])) + k[2:]
            ans += 1
        num += k
while len(num) != 1:
    num = str(int(num[0]) + int(num[1])) + num[2:]
    ans += 1
print(ans)

### FIXED CODE ###

import sys
input = sys.stdin.readline
m = int(input())
ans = 0
sum_num = 0
c_sum = 0
for i in range(m):
    d,c = map(int, input().split())
    sum_num += d*c
    c_sum += c
#合計に対して、9減らす行為が何回出来るか
print(c_sum-1 + ((sum_num-1)//9))
ut())
A = list(input().split())
B = [int(a) for a in A]
x = 10**9+7
summation = sum((B[i] * (sum(B[j] for j in range(i+1,N)) % x)) % x for i in range(N-1)) % x
print(summation)

### FIXED CODE ###

N = int(input())
A = list(input().split())
B = [int(a) for a in A]
x = 10**9+7
summation1 = sum(B) ** 2
summation2 = sum(b ** 2 for b in B)
summation = ((summation1 - summation2) // 2) % x
print(summation)
K = int(input())
S = input()
if len(S) <= K:
    print(S)
else:
    print(S[K-1:-1]

### FIXED CODE ###

K = int(input())
S = input()
if len(S) <= K:
    print(S)
else:
    print(S[:K]+'...')
n, a, b = map(int, input().split())
if a+b == 0:
  x = 0
else:
	s = n//(a+b)
	t = n%(a+b)
    if t <= a:
    	x = s*a+t
	else:
    	x = s*a+a
print(x)

### FIXED CODE ###

n, a, b = map(int, input().split())
if a+b == 0:
  x = 0
else:
	s = n//(a+b)
	t = n%(a+b)
	if t <= a:
		x = s*a+t
	else:
		x = s*a+a
print(x)
a=int(input())
b=float(input())
a*=int(b*100)
print(int(a/100))

### FIXED CODE ###

a, b = input().split()
print(int(a)*int(b[0]+b[2]+b[3])//100)
while True:
 h,w=map(int,input().split())
 if h==0:break
 print(('#'*w))
 for _ in range(h-2):print(('#'+'.'*(w-2)+'#')))
 print(('#'*w))
 print()

### FIXED CODE ###

while 1:
 h,w=map(int,input().split())
 if h==0:break
 print(('#'*w)+'\n'+('#'+'.'*(w-2)+'#\n')*(h-2)+('#'*w)+'\n')
#include <iostream>

using namespace std;

int main() {
    int x;
    cin>>x;
    if (x==0){
        cout<<0<<endl;
        
    }
    if (x==1){
        cout<<1<<endl;
    }
else{
    

    cout<<"error"<<endl;
}
    return 0; 
}

### FIXED CODE ###

x=int(input())
if x==0:
  print(1)
elif x==1:
  print(0)
a, b, c = int(input())
print(str(a+b+c))

### FIXED CODE ###

a = list(input())
b = 0
for i in a:
    b += int(i)
print(b)
L = [int(input()) for i in range(5)]
l = [i*(-1)//10*10*(-1) for i in L]
l1 = [i%10 for i in L]
l2 = sorted(list(set(l1)))
if l2[0] == 0:
  print(sum(l)-l[l1.index(l2[1])]+L[l1.index(l2[1])])
else:
  print(sum(l)-l[l1.index(l2[0])]+L[l1.index(l2[0])])

### FIXED CODE ###

L = [int(input()) for i in range(5)]
l = [i*(-1)//10*10*(-1) for i in L]
l1 = [i%10 for i in L]
l2 = sorted(list(set(l1)))
if l2[0] == 0:
  if len(l2) == 1:
    print(sum(L))
  else:
    print(sum(l)-l[l1.index(l2[1])]+L[l1.index(l2[1])])
else:
  print(sum(l)-l[l1.index(l2[0])]+L[l1.index(l2[0])])
import math

S = input().split()
A = int(S[0])
B = int(S[1])
C = int(S[2])
D = int(S[3])

E = int((C * D) / math.gcd(C, D))

X = (B//C)-((A-1)//C)
Y = (B//D)-((A-1)//D)
Z = (B//E)-((A-1)//E)

print(int(B-A+1-X-Y+Z))


### FIXED CODE ###


def gcd(a, b):
    while b != 0:
        a, b = b, a % b
    return a

 #最小公倍数


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


S = input().split()
A = int(S[0])
B = int(S[1])
C = int(S[2])
D = int(S[3])

E = lcm(C, D)

X = int(B//C)-int((A-1)//C)
Y = int(B//D)-int((A-1)//D)
Z = int(B//E)-int((A-1)//E)

print(B-A+1-X-Y+Z)
FACTOR = 10 ** 9 + 7

num = 1
for i in range(1, N+1):
    num *= i
    k, r = divmod(num, FACTOR)
    num = r

k, r = divmod(num, FACTOR)
print(r)

### FIXED CODE ###

import math

N = int(input())

num = math.factorial(N)

k, r = divmod(num, 10**9 + 7)
print(r)
n, a, b, k = map(int, input().split())

def gcd(a, b):
    if b == 0:
        return a
    else:
        return gcd(b, a % b)
    
def mod_inv(a, mod):
    return (pow(a,mod-2,mod))

def mod_combination(n, k, mod):
    return (fact[n]*mod_inv(fact[k], mod)*mod_inv(fact[n-k], mod)) % mod

g = gcd(k, gcd(a, b))
a //= g
b //= g
k //= g

mod = 998244353
fact = [1] + [0] * n
for i in range(n):
    fact[i+1] = (fact[i] * (i+1)) % mod
if a < b:
    tmp = a
    a = b
    b = tmp

ans = 0
for x in range(n+1):
    if (k-x*a) % b == 0:
        y = (k-x*a)//b
        if y >= 0:
            ans += mod_combination(n, x, mod) * mod_combination(n, y, mod)
            ans %= mod

    
print(ans)


### FIXED CODE ###

def sum_digit(n):
    ret = 0
    while n>0:
        ret += n % 10
        n //= 10
    return ret

N = int(input())

mi = 999999999
for a in range(1, N):
    b = N - a
    mi = min(mi, sum_digit(a)+sum_digit(b))

print(mi)
import sys
sys.setrecursionlimit(100000)

N = int(input())
edges = []
connected = [[] for i in range(100010)]
for i in range(N-1):
    x=list(map(int, input().split()))
    x[0] -= 1
    x[1] -= 1
    edges.append(x)
    connected[x[0]].append([x[1], x[2]])
    connected[x[1]].append([x[0], x[2]])

Q,K = map(int, input().split())
K -= 1
depth = [0]*100010
def DFS(v, p, d):
    depth[v] = d
    for child in connected[v]:
        if child[0] == p:
            continue
        DFS(child[0], v, d+child[1])

DFS(K,-1,0)
for i in range(Q):
    xi, yi = map(int, input().split())
    print(depth[xi-1]+depth[yi-1])


### FIXED CODE ###

import sys
sys.setrecursionlimit(200000)

N = int(input())
edges = []
connected = [[] for i in range(100010)]
for i in range(N-1):
    x=list(map(int, input().split()))
    x[0] -= 1
    x[1] -= 1
    edges.append(x)
    connected[x[0]].append([x[1], x[2]])
    connected[x[1]].append([x[0], x[2]])

Q,K = map(int, input().split())
K -= 1
depth = [0]*100010
def DFS(v, p, d):
    depth[v] = d
    for child in connected[v]:
        if child[0] == p:
            continue
        DFS(child[0], v, d+child[1])

DFS(K,-1,0)
for i in range(Q):
    xi, yi = map(int, input().split())
    print(depth[xi-1]+depth[yi-1])
N, M = map(int, input().split())
def sta(n):
  one = 1
  for i in range(1, n + 1):
    one *= i
  return one

if N >= 3:
  num = sta(N)/(sta(2)*sta(N-2))
if N = 2:
  num = 1
if N <= 1:
  num = 0

if M >= 3:
  mum = sta(N)/(sta(2)*sta(N-2))
if M = 2:
  mum = 1
if M <= 1:
  mum = 0

print(num + mum)


### FIXED CODE ###

N, M = map(int, input().split())
def sta(n):
  one = 1
  for i in range(1, n + 1):
    one *= i
  return one

if N >= 3:
  num = sta(N)/(sta(2)*sta(N-2))
if N == 2:
  num = 1
if N <= 1:
  num = 0

if M >= 3:
  mum = sta(M)/(sta(2)*sta(M-2))
if M == 2:
  mum = 1
if M <= 1:
  mum = 0

print(int(num + mum))
import math

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

MOD = 10 ** 9 + 7

def comb(n, r):
	f = math.factorial
	return f(n) // (f(n - r) * f(r))

for k in range(1, K + 1):
	print(comb(K - 1, k - 1) * comb(N - K + 1, k) % MOD)


### FIXED CODE ###

import math

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

MOD = 10 ** 9 + 7

def comb(n, r):
	f = math.factorial
	return f(n) // (f(n - r) * f(r))

for k in range(1, K + 1):
	if N - K + 1 < k:
		print(0)
		continue
	print(comb(K - 1, k - 1) * comb(N - K + 1, k) % MOD)
N = int(input())
A = list(map(int, input().split())
flag = True
for a in A:
    if a % 2 == 0:
        if a % 3 == 0 or a % 5 == 0:
        continue
    flag = False

if flag:
    print('APPROVED')
else:
    print('DENIED')




### FIXED CODE ###

N = int(input())
A = list(map(int, input().split()))
flag = True
for a in A:
    if a % 2 == 0:
        if a % 3 == 0 or a % 5 == 0:
            continue
        else:
            flag = False

if flag:
    print('APPROVED')
else:
    print('DENIED')
def main():
    N = int(input())
    W = []
    for n in range(N):
        W.append(input())
    for i, w in enumerate(W):
        prev_w = w
        if i==0:
            continue
        for wn in W[:i]:
            if w == wn:
                print('No')
                return 
        if prev_w[-1] != w[0]:
            print('No')
            return
    print('Yes')
    return

main()


### FIXED CODE ###

s = input()
a,b = s.split(' ')
a = int(a)
b = int(b)
if (a%2 == 0) or (b%2 == 0):
    print('No')
else:
    print('Yes')
if __name__ == '__main__':




&#160; &#160; while True:








&#160; &#160; &#160; &#160; n = int(raw_input())
&#160; &#160; &#160; &#160; if n == 0:
&#160; &#160; &#160; &#160; &#160; &#160; break




&#160; &#160; &#160; &#160; data = [0 for a in range(10)]
&#160; &#160; # &#160; &#160;print data




&#160; &#160; &#160; &#160; for m in range(n):
&#160; &#160; &#160; &#160; &#160; &#160; inp = int(raw_input())




&#160; &#160; &#160; &#160; &#160; &#160; data[inp-1] += 1
&#160; &#160; # &#160; &#160; &#160; &#160;print data




&#160; &#160; &#160; &#160; for m in range(10):




&#160; &#160; &#160; &#160; &#160; &#160; if data[m] == 0:
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; print '-'




&#160; &#160; &#160; &#160; &#160; &#160; else:
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; for c in range(data[m]):
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; print '*',




&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; print

### FIXED CODE ###

#!/usr/bin/env python3

d_init = [0] * 10
while True:
    data = d_init[:]
    n = int(input())
    if n == 0:
        break

    for _ in range(n):
        in_data = int(input())
        data[in_data] += 1

    for d in data:
        if d == 0:
            print("-")
        else:
            print("*" * d)
n, k = input().split()
d = input().split()
valid = [i for i in range(10) if str(i) not in d]
ans = ''

if valid[-1] < int(n[0]):
    if valid[0] == 0:
        ans += str(valid[1])
    else:
        ans += str(valid[0])
    ans += str(valid[0]) * len(n)
else:
    for i, s in enumerate(n):
        if i > 0 and ans[i-1] > n[i-1]:
            ans += str(valid[0]) * (len(n)-i)
            break

        for k in valid:
            if k >= int(s):
                ans += str(k)
                break
print(ans)

### FIXED CODE ###

n, k = input().split()
d = input().split()
valid = [i for i in range(10) if str(i) not in d]
ans = ''

if valid[-1] < int(n[0]):
    if valid[0] == 0:
        ans += str(valid[1])
    else:
        ans += str(valid[0])
    ans += str(valid[0]) * len(n)
elif valid[-1] == int(n[0]):
    for s in n:
        if s > str(valid[-1]):
            ans = str(valid[-1])
            ans += str(valid[0]) * len(n)
            break
        ans += str(valid[-1])
else:
    for i, s in enumerate(n):
        if i > 0 and ans[i-1] > n[i-1]:
            ans += str(valid[0]) * (len(n)-i)
            break

        for k in valid:
            if k >= int(s):
                ans += str(k)
                break
print(ans)
while True:
    m, f, r = map(int, raw_input().split())
    if m+f+r == -3:
        break
    if m == -1 or f == -1:
        print "F"
    elif m+f >= 80
        print "A"
    elif m+f >= 65
        print "B"
    elif m+f >= 50
        print "C"
    elif m+f >= 30
        if r >= 50
            print "C"
        else:
            print "D"
    else:
        print "F"

### FIXED CODE ###

while True:
    m, f, r = map(int, raw_input().split())
    if m+f+r == -3:
        break
    if m == -1 or f == -1:
        print "F"
    elif m+f >= 80:
        print "A"
    elif m+f >= 65:
        print "B"
    elif m+f >= 50:
        print "C"
    elif m+f >= 30:
        if r >= 50:
            print "C"
        else:
            print "D"
    else:
        print "F"
import numpy as np

N, K, Q = [int(x) for x in input().split()]

A = list()
while True:
    line = input()
    if line:
        A.append(int(line))
    else:
        break

scores = np.zeros((N), dtype=np.int32)

for a in A:
    scores[[i for i in range(N) if i != (a - 1)]] -= 1

scores = scores + K

for score in scores:
    print("Yes" if score > 0 else "No")


### FIXED CODE ###

import numpy as np

N, K, Q = [int(x) for x in input().split()]

A = list()
while True:
    try:
        A.append(int(input()))
    except EOFError:
        break

scores = np.full((N), K - Q)

for a in A:
    scores[a - 1] += 1

for score in scores:
    print("Yes" if score > 0 else "No")
import math
a,b = int(input())
print(math.ceil(a+b/2))

### FIXED CODE ###

import math
a,b = map(int,input().split())
print(math.ceil((a+b)/2))