#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using pi = pair<ll, ll>;
using vi = vector<ll>;
template <typename T>
struct Matrix {
  ll H, W;
  vector<vector<T>> data;
  pi shape;
  Matrix(ll H, ll W) : H(H), W(W), data(H, vector<T>(W)), shape({H, W}) {}
  void fill(T x) {
    for (ll i = 0; (i) < (ll)(H); ++(i)) {
      for (ll j = 0; (j) < (ll)(W); ++(j)) data[i][j] = x;
    }
  }
  vector<T>& operator[](ll i) { return data[i]; }
  bool operator==(Matrix<T>& other) {
    if (H != other.H || W != other.W) return false;
    for (ll i = 0; (i) < (ll)(H); ++(i))
      for (ll j = 0; (j) < (ll)(W); ++(j)) {
        if (data[i][j] != other[i][j]) return false;
      }
    return true;
  }
  Matrix rot() {
    auto B = Matrix(W, H);
    for (ll i = 0; (i) < (ll)(W); ++(i)) {
      for (ll j = 0; (j) < (ll)(H); ++(j)) {
        B[i][j] = (*this)[j][W - 1 - i];
      }
    }
    return B;
  }
};
ll in() {
  ll i;
  cin >> i;
  return i;
}
pi in2() {
  ll a, b;
  cin >> a >> b;
  return {a, b};
}
tuple<ll, ll, ll> in3() {
  ll a, b, c;
  cin >> a >> b >> c;
  return {a, b, c};
}
tuple<ll, ll, ll, ll> in4() {
  ll a, b, c, d;
  cin >> a >> b >> c >> d;
  return {a, b, c, d};
}
vi vin(ll n) {
  vi A(n);
  for (auto&& x : A) {
    cin >> x;
  }
  return A;
}
string sin() {
  string s;
  cin >> s;
  return s;
}
vi s_to_vi(string S, char first_char = 'a') {
  vi A(S.size());
  for (ll i = 0; (i) < (ll)(S.size()); ++(i)) {
    A[i] = S[i] - first_char;
  }
  return A;
}
Matrix<ll> matrixin(ll H, ll W) {
  Matrix<ll> A(H, W);
  for (ll i = 0; (i) < (ll)(H); ++(i)) {
    for (ll j = 0; (j) < (ll)(W); ++(j)) {
      A[i][j] = in();
    }
  }
  return A;
}
Matrix<char> cmatrixin(ll H, ll W) {
  Matrix<char> A(H, W);
  for (ll i = 0; (i) < (ll)(H); ++(i)) {
    string S = sin();
    for (ll j = 0; (j) < (ll)(W); ++(j)) {
      A[i][j] = S[j];
    }
  }
  return A;
}
template <typename T, typename U>
ostream& operator<<(ostream& os, pair<T, U>& A) {
  os << A.first << " " << A.second;
  return os;
}
template <typename T>
ostream& operator<<(ostream& os, const vector<T>& A) {
  for (size_t i = 0; i < A.size(); i++) {
    if (i) os << " ";
    os << A[i];
  }
  return os;
}
void print() { cout << "\n"; }
template <class Head, class... Tail>
void print(Head&& head, Tail&&... tail) {
  cout << head;
  if (sizeof...(Tail)) cout << " ";
  print(forward<Tail>(tail)...);
}
template <typename T>
string join(vector<T>& v) {
  ostringstream os;
  for (auto&& x : v) {
    os << x;
  }
  return os.str();
}
void YES() { print("YES"); }
void NO() { print("NO"); }
void Yes() { print("Yes"); }
void No() { print("No"); }
template <typename T>
ll sum(T A) {
  return accumulate(A.begin(), A.end(), 0LL);
}
template <typename T>
vector<T> cumsum(vector<T> A) {
  ll N = A.size();
  vector<T> B(N + 1);
  B[0] = T(0);
  for (ll i = 0; (i) < (ll)(N); ++(i)) {
    B[i + 1] = B[i] + A[i];
  }
  return B;
}
vi bin_count(vi& A, ll size) {
  vi C(size);
  for (auto&& x : A) {
    ++C[x];
  }
  return C;
}
template <typename T>
vi argsort(vector<T>& A) {
  vi ids(A.size());
  iota(ids.begin(), ids.end(), 0);
  sort(ids.begin(), ids.end(),
       [&](ll i, ll j) { return make_pair(A[i], i) <= make_pair(A[j], j); });
  return ids;
}
template <typename T>
ll argmax(vector<T>& A) {
  return max_element(A.begin(), A.end()) - A.begin();
}
template <typename T>
ostream& operator<<(ostream& os, Matrix<T>& A) {
  for (ll i = 0; (i) < (ll)(A.H); ++(i)) {
    if (i) os << "\n";
    os << A[i];
  }
  return os;
}
template <class T, class U>
bool chmax(T& a, const U& b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T, class U>
bool chmin(T& a, const U& b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
signed main() {
  cin.tie(nullptr);
  ios::sync_with_stdio(false);
  cout << setprecision(15);
  auto T = in();
  for (ll _ = 0; (_) < (ll)(T); ++(_)) {
    auto N = in();
    auto A = vin(N);
    sort(A.begin(), A.end());
    ll ev = 0, od = 0;
    for (auto&& x : A) {
      if (x % 2 == 0)
        ++ev;
      else
        ++od;
    }
    bool find = false;
    for (ll i = 0; (i) < (ll)(N - 1); ++(i))
      if (A[i] + 1 == A[i + 1]) find = true;
    if (ev % 2 == 0 || find)
      YES();
    else
      NO();
  }
  return 0;
}
