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 buquetDeCoresIgual():
	
	global red
	global green
	global blue
		
	bouquetRed = red/ 3
	bouquetGreen = green/3
	bouquetBlue = blue /3
	
	red = red % 3
	green = green % 3
	blue = blue % 3
	
	return bouquetRed + bouquetGreen + bouquetBlue

def buquetMixing():
	
	global red
	global green
	global blue
	
	buquet = min(red, green, blue)
	
	red -= buquet
	green -= buquet
	blue -= buquet 
	
	return buquet

def caso3():
	
	global red
	global green
	global blue
	
	menor = min(red, green, blue)
	maior = max(red, green, blue)
	
	bouquet =  maior % menor
	
	red -= bouquet
	green -= bouquet
	blue -= bouquet
	
	return bouquet
	
red, green, blue = map(int, raw_input().split())

red2 = red
green2 = green
blue2 = blue

if red != 0 and green != 0 and blue != 0:

	bouquet1 = buquetDeCoresIgual() + buquetMixing()

	red = red2
	green = green2
	blue = blue2

	bouquet2 = buquetMixing() + buquetDeCoresIgual()

	red = red2
	green = green2
	blue = blue2

	bouquet3 = caso3() + buquetDeCoresIgual()

	print max(bouquet1, bouquet2, bouquet3)


else:
		
	print buquetDeCoresIgual()

