#include <bits/stdc++.h>
using namespace std;
long long rd(long long &x) { return scanf("%lld", &x); }
long long rd(long long &x, long long &y) { return scanf("%lld %lld", &x, &y); }
long long rd(long long &x, long long &y, long long &z) {
  return scanf("%lld %lld %lld", &x, &y, &z);
}
long long rd(long long &x, long long &y, long long &z, long long &s) {
  return scanf("%lld %lld %lld %lld", &x, &y, &z, &s);
}
void shaon() { cerr << endl; }
template <typename T, typename... north>
void shaon(T arg, const north &...rest) {
  cerr << arg << ' ';
  shaon(rest...);
}
long long n, m, k, q;
int main() {
  rd(q);
  for (long long i = 1; i <= (q); i++) {
    rd(n, m, k);
    n = abs(n), m = abs(m);
    if (n > m) swap(n, m);
    long long low = m;
    if (k < low)
      printf("-1\n");
    else {
      long long ans;
      long long x = k - low;
      if (n == m) {
        if (k == m + 1)
          ans = m - 1;
        else {
          if (x % 2 == 0)
            ans = k;
          else {
            ans = k - 2;
          }
        }
      } else if ((m - n) % 2 == 0) {
        if (k == m + 1)
          ans = m - 1;
        else {
          if (x % 2 == 0)
            ans = k;
          else {
            ans = k - 2;
          }
        }
      } else {
        if (k == m + 1)
          ans = m;
        else if (k == m)
          ans = m - 1;
        else {
          if (x % 2 == 0) {
            ans = k - 1;
          } else {
            ans = k - 1;
          }
        }
      }
      printf("%lld\n", ans);
    }
  }
  return 0;
}
