def search(mid, R, G, B): """ mid 個の花束を作れるか判定する関数 """ R -= mid G -= mid B -= mid # 各色の最小値を消費し、それぞれが 0 以上であることを確認 if R < 0 or G < 0 or B < 0: return False # 残った花をペアで使って mid 個作れるか remaining_pairs = (R // 2) + (G // 2) + (B // 2) return remaining_pairs >= mid def max_bouquets(R, G, B): """ 二分探索で作れる花束の最大値を求める """ left, right = 0, 10**9 + 1 while right - left > 1: mid = (left + right) // 2 if search(mid, R, G, B): left = mid else: right = mid return left # 入力を受け取る R, G, B = map(int, input().split()) print(max_bouquets(R, G, B))