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.
import java.util.Scanner;

/**
 *
 * @author meskill
 */
public class JavaApplication59 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner sc=new Scanner(System.in);
        int a1=sc.nextInt();
        int b1=sc.nextInt();
        int c1=sc.nextInt();
        if (a1==0 || b1==0 || c1==0) {
            System.out.println(a1/3+b1/3+c1/3);
            return;
        }
        int a=a1;
        int b=b1;
        int c=c1;
        int result=0;
        result+=a/3;
        a%=3;
        if (a==0) {
            a=3;
            result--;
        }
        result+=b/3;
        b%=3;
        if (b==0) {
            b=3;
            result--;
        }
        result+=c/3;
        c%=3;
        if (c==0) {
            c=3;
            result--;
        }
        result+=Math.min(Math.min(a, b), c);
        System.out.println(Math.max(result,a1/3+b1/3+c1/3+Math.min(a1%3, Math.min(b1%3,c1%3))));
    }
}