#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i,N) for (int i = 0; i < (N); i++) using ll = long long; using lb = long double; using namespace std; const int mod = 1000000007; ll gcd(ll P, ll Q){ return Q ? gcd(Q,P % Q):P; } ll lcm(ll P, ll Q){ return P / gcd(P,Q) * Q; } string change_big(string str){ transform(str.begin(), str.end(), str.begin(), ::toupper); return str; } string change_small(string str){ transform(str.begin(), str.end(), str.begin(), ::tolower); return str; } bool is_prime(int x){ if(x<=1) return false; for(int i=2;i*i<=x;i++) if(x%i==0) return false; return true; } ll sum_of_num(ll num){ ll dig; ll sum = 0; while(num){ dig = num % 10; sum = sum + dig; num = num / 10; } return sum; } ll how_many_break(ll n, ll m){ ll counter = 0; while (n % m == 0){ n = n / m; counter++; } return counter; } /*------------------------------------------------------------------------------------*/ int main(){ ll A,B,C; cin >> A >> B >> C; ll P = (max(A,B) - min(A,B)) + C; if(P % 2 == 0){ cout << (min(A,B) / 2) + (P / 2) << endl; } else{ cout << (min(A,B) / 2) + (P / 2) + 1 << endl; } return 0; }