Fox Ciel has some flowers: r red flowers, g green flowers and b blue flowers. She wants to use these flowers to make several bouquets. There are 4 types of bouquets:

  * To make a "red bouquet", it needs 3 red flowers. 
  * To make a "green bouquet", it needs 3 green flowers. 
  * To make a "blue bouquet", it needs 3 blue flowers. 
  * To make a "mixing bouquet", it needs 1 red, 1 green and 1 blue flower. 



Help Fox Ciel to find the maximal number of bouquets she can make.

Input

The first line contains three integers r, g and b (0 ≤ r, g, b ≤ 109) — the number of red, green and blue flowers.

Output

Print the maximal number of bouquets Fox Ciel can make.

Examples

Input

3 6 9


Output

6


Input

4 4 4


Output

4


Input

0 0 0


Output

0

Note

In test case 1, we can make 1 red bouquet, 2 green bouquets and 3 blue bouquets.

In test case 2, we can make 1 red, 1 green, 1 blue and 1 mixing bouquet.
r,g,b = map(int, raw_input().split())
cont = True
r2 = r
g2 = g
b2 = b
c = 0
d = 0
while cont is True:
  tmp = min(r,g,b)
  if(tmp == 0):
    c += r/3 + g/3 + b/3
    cont = False
  else:
    if(tmp < 3 and (min(r,g)==3 or min(g,b)==3 or min(r,b)==3)):
      c += r/3 + g/3 + b/3
      cont = False
    else:
      if(tmp/3==0):
        c += 1
        r -= 1
        g -= 1
        b -= 1
      else:
        c += tmp/3
        r -= tmp/3
        g -= tmp/3
        b -= tmp/3
cont = True
while cont is True:
  tmp = min(r2,g2,b2)
  if(tmp == 0):
    d += r2/3 + g2/3 + b2/3
    cont = False
  else:
    if(tmp < 3 and (min(r2,g2)%3==0 or min(g2,b2)%3==0 or min(r2,b2)%3==0)):
      d += r2/3 + g2/3 + b2/3
      cont = False
    else:
      if(tmp/3==0):
        d += 1
        r2 -= 1
        g2 -= 1
        b2 -= 1
      else:
        d += tmp/3
        r2 -= tmp/3
        g2 -= tmp/3
        b2 -= tmp/3
print(max(c,d))