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.
def solver():
    r,g,b = map(int, raw_input().split())
    r1,g1,b1 = r,g,b
    x = min(r1,g1,b1)
    ans1 = 0
    ans1 += x
    r1 -= x
    g1 -= x
    b1 -= x
    ans1 += r1/3
    ans1 += g1/3
    ans1 += b1/3

    ans2 = 0
    r2,g2,b2 = r,g,b
    flagr = (r2 % 3 == 2)
    flagg = (g2 % 3 == 2)
    flagb = (b2 % 3 == 2)
    flags = [flagr,flagg,flagb]
    if flags.count(True) == 2:
        if flagr == False:
            r2,b2 = b2,r2
        elif flagg == False:
            g2,b2 = b2,g2

        ans2 += r2/3
        ans2 += g2/3
        if b2 >= 3:
            ans2 += b2/3 - 1
            ans2 += 2

    r3,g3,b3 = r,g,b

    ans3 = 0
    ans3 += r3/3
    ans3 += g3/3
    ans3 += b3/3
    ans3 += min(r3%3,g3%3,b3%3)


    #print ans1,ans2,ans3
    print max(ans1,ans2,ans3)

    
        

    

if __name__ == "__main__":
    solver()

