#ifndef _GLIBCXX_NO_ASSERT #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#ifdef __GXX_EXPERIMENTAL_CXX0X__ #include #include #include #include #include #include #include #include //#endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include #include //#include #include //#include #include //#include #include #include #include #include //#include #include #include #include #include #include using namespace std; int main () { array A; for( size_t i = 0; i < 3; i++ ) { cin >> A[i]; } sort ( A.begin () , A.end () ); int ans = A[0]; A[1] -= A[0]; A[2] -= A[0]; while( A[1] + A[2] > 3 &&max(A[1],A[2])>2) { if( A[1] > A[2] ) { A[1]-=3; A[2]--; ans++; } else { A[2] -= 3; A[1]--; ans++; } } cout << ans << endl; }