output_description: Print x rounded up to the nearest integer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      a b
attempt: #!usr/bin/env python3
  from collections import defaultdict
  from collections import deque
  from heapq import heappush, heappop
  import sys
  import math
  import bisect
  import random
  
  
  def LI():
      return list(map(int, sys.stdin.readline().split()))
  
  
  def I():
      return int(sys.stdin.readline())
  
  
  def LS():
      return list(map(list, sys.stdin.readline().split()))
  
  
  def S():
      return list(sys.stdin.readline())[:-1]
  
  
  def IR(n):
      l = [None for i in range(n)]
      for i in range(n):
          l[i] = I()
      return l
  
  
  def LIR(n):
      l = [None for i in range(n)]
      for i in range(n):
          l[i] = LI()
      return l
  
  
  def SR(n):
      l = [None for i in range(n)]
      for i in range(n):
          l[i] = S()
      return l
  
  
  def LSR(n):
      l = [None for i in range(n)]
      for i in range(n):
          l[i] = LS()
      return l
  
  
  sys.setrecursionlimit(1000000)
  mod = 1000000007
  
  
  # A
  def A():
      a, b = LI()
      print((a + b) // 2)
      return
  
  
  # B
  def B():
      s = S()
      t = S()
      s.sort()
      t.sort(reverse=True)
      if s < t:
          print("Yes")
      else:
          print("No")
      return
  
  
  # C
  def C():
      n = I()
      d = [None for i in range(n + 1)]
      d[0] = 2
      d[1] = 1
      for i in range(2, n + 1):
          d[i] = d[i - 1] + d[i - 2]
      print(d[n])
      return
  
  
  # D
  def D():
      x, y, z = LI()
      for i in range(1000000)[::-1]:
          if i * y + (i + 1) * z <= x:
              print(i)
              quit()
      return
  
  
  # E
  def E():
      d = [(1, 0), (-1, 0), (0, 1), (0, -1)]
      h, w = LI()
      s = SR(h)
      for i in range(h):
          for j in range(w):
              if s[i][j] == "#":
                  su = 0
                  for dy, dx in d:
                      y = i + dy
                      x = j + dx
                      if 0 <= y < h and 0 <= x < w:
                          if s[y][x] == "#":
                              su += 1
                  if su == 0:
                      print("No")
                      quit()
      print("Yes")
      return
  
  
  # F
  def F():
      a, b, c, X, Y = LI()
      ans = float("inf")
      for z in range(300001):
          if z % 2 == 0:
              m = c * z
              x = z // 2
              y = z // 2
              m += a * max(0, X - x)
              m += b * max(0, Y - y)
              if m < ans:
                  ans = m
      print(ans)
      return
  
  
  # G
  def G():
      n = I()
      x = LI()
      f = [(i, x[i]) for i in range(n)]
      f.sort(key=lambda x: x[1])
      g = [(f[i][0], i) for i in range(n)]
      g.sort(key=lambda x: x[0])
      for i in range(n):
          if g[i][1] < n // 2:
              print(f[n // 2][1])
          else:
              print(f[n // 2 - 1][1])
      return
  
  
  # H
  def H():
      return
  
  
  # I
  def I_():
      return
  
  
  # J
  def J():
      return
  
  
  # Solve
  if __name__ == "__main__":
      A()
  
problem_description: Statement
  
  You are given two positive integers a and b. Let x be the average of a and b.
  Print x rounded up to the nearest integer.
samples: [{"input": "1 3", "output": "2\n    \n\nThe average of 1 and 3 is 2.0, and it will be rounded up to the nearest\ninteger, 2.\n\n* * *"}, {"input": "7 4", "output": "6\n    \n\nThe average of 7 and 4 is 5.5, and it will be rounded up to the nearest\ninteger, 6.\n\n* * *"}, {"input": "5 5", "output": "5"}]