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;
public class Main{
    public static void main(String[] args) {
    Scanner get=new Scanner(System.in);
    long a,b,c,count=0;
     a=get.nextLong();
     b=get.nextLong();
     c=get.nextLong();
     long sum=0,it;
   long a1=a,b1=b,c1=c;
    if(a>=3){
         count=count+a/3;
         a=a%3;
         sum=sum+a;
      ///  System.out.println(sum);
       //System.out.println(a +" "+ count);
     }
     if(b>=3){
         count=count+b/3;
         b=b%3;
         sum=sum+b;
      //  System.out.println(sum);
     // System.out.println(b +" "+ count);
     }
        
     if(c>=3){
         count=count+c/3;
         c=c%3;
         sum=sum+c;
        // System.out.println(sum);
       // System.out.println(c +" "+ count);
     }
    //   System.out.println(sum);
       boolean flag=false;
       if(a>=2 && b>=1 && c>=1){
           flag=true;
       }
       if(a>=1 && c>=2 && b>=1 ){
           flag=true;
       }
       if(c>=2 && b>=1 && a>=1 ){
           flag=true;
       }
       if((a>=2 && b>=2 && c1>0)||(a>=2 && c>=2 && b1>0)||(b>=2 &&c>=2 && a1>0)){
           flag =true;
       }
       if(a>=1 && b>=1 && c>=1){
           flag=true;
       }   
       if(flag==true){
           
          // System.out.println(sum);
           count=count+sum/3;
       }
       
           
           
           
       /* if((a>=2 && b>=1 )||(a>=2 && c>=2)||(b>=2 &&c>=2)){
            System.out.println(""+sum);
          
         long getit=sum/3;
         long r=sum%3;
         count=count+getit;
           
 
  
        }*/
     System.out.println(count);
}
}


/*
 if(a>=1 || b>=1 || c>=1){
         if(a==1 || b==1 || c==1){
             count++;
             a--;b--;c--;
         }
         else{
             boolean f=true;
             while(f){
                 if(a>0 && b>0 && c>0){
                     count++;
                     a--;b--;c--;
                 }
                 
                 else{
                     f=false;
                     break;
             }
         }
     }
     
    
   }*/