main = do
  li <- getLine
  let [a,b,c] = map read $ words li
  let ans = compute a b c
  print ans

{-
増やすことしかできないので、a+x = b+y = c+z = K まで増やして完成するとする。
どちらの操作も、合計で2増やすので、操作回数は (x+y+z)/2 である。これの最小値が欲しい。
a >= b >= c と仮定して、a=Kとできたとすると、
x=0, y=a-b, z=a-c, x+y+z = 2a-b-c これが偶数ならそれでできる。
奇数のときは、a+1=Kでできたとすると、
x=1, y=a-b+1, z=a-c+1, x+y+z = 2a-b-c+3 2a-b-cが奇数ならこれは偶数
2a-b-c = 3a - (a+b+c)
-}

compute :: Int -> Int -> Int -> Int
compute a b c
  | even e = div e 2
  | True   = div (e+3) 2
  where
    d = maximum [a,b,c]
    e = 3 * d - a - b - c