#include #define rep(var,cnt) for(int (var)=0; (var)<(int)(cnt); ++(var)) #define Rep(var,init,cnt) for(int (var)=(init); (var)<(cnt); ++(var)) #define REP(var,init,cnt) for(int (var)=(init); (var)<=(cnt); ++(var)) #define ran(var,vec) for(auto &(var):(vec)) #define all(v) (v).begin(),(v).end() #define rall(v) (v).rbegin(),(v).rend() #define SORT(v) sort(all(v)) #define RSORT(v) sort(rall(v)) #define SUM(v) accumulate(all(v),0) #define tget(tp,idx) get(tp) #define TF(flag) (flag)?1:0 using namespace std; using ll = long long; using ull = unsigned long long; using pi = pair; using pl = pair; using ti = tuple; using tl = tuple; template using vec = vector; template using mat = vector>; template using cub = vector>; template using val = valarray; template using pq = priority_queue; template using rpq = priority_queue,greater>; template ostream &operator<<(ostream &os, const pair &p){ os<<"P("< istream &operator>>(istream &is, pair &p){ is>>p.first>>p.second; return is; } template ostream &operator<<(ostream &os, const vector &v){ cout<<"V{"; for(int i=0; i<(int)v.size(); ++i){ os< istream &operator>>(istream &is, vector &v){ for(T &in:v) is>>in; return is; } template ostream &operator<<(ostream &os, const valarray &v){ cout<<"V{"; for(int i=0; i<(int)v.size(); ++i){ os< istream &operator>>(istream &is, valarray &v){ for(T &in:v) is>>in; return is; } // Usual Template End ================================================ // Template End ====================================================== constexpr int MOD=1e9+7; int main(void){ int x,y,z; cin>>x>>y>>z; int ans=min(x,y); x-=ans,y-=ans; ans+=(x+y+z)/2; cout<