#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define rep(i,j,n) for(int i=(j);i<(n);i++) #define erep(i,j,n) for(int i=(j);i<=(n);i++) #define all(i) i.begin(),i.end() #define rall(i) i.rbegin(),i.rend() #define INF 1e9 const int mod = 1e9+7; typedef vector vi; typedef vector> vvi; typedef vector vs; typedef vector> vvs; typedef pair pi; typedef long long i64; vi v(3); bool solve(int n) { int p = 0, m = 0; rep(i, 0, 3) { if(v[i] >= n) p += (v[i] - n) / 2; else m += n - v[i]; } return (p >= m); } int binary_search() { int ok = INF; int ng = -1; while(abs(ok - ng) > 1) { int mid = (ok + ng) / 2; if(solve(mid)) ng = mid; else ok = mid; } return ng; } int main() { cin.tie(0); ios::sync_with_stdio(false); rep(i, 0, 3) cin >> v[i]; cout << binary_search() << endl; }