#include <bits/stdc++.h>
using namespace std;
int main() {
const vector<string> ans = {"NO","YES"};
const auto expected = [&](int N) {
int parity, count[2] = {};
for (auto digit: to_string(N))
++count[parity = (digit-'0')&1];
return ans[count[parity] > 1]; };
const auto buggy = [&](int N) {
enum {NO,YES};
if (N == 10)
return ans[NO];
const auto parity = [&](int x) { return x%2; };
for (int a, b, div = 10; N/div > 0; div *= 10)
if (a = N/div, b = N%div, a == 0 or b == 0)
continue;
else if (parity(a) == parity(b))
return ans[YES];
return ans[NO]; };
const auto hack_code = [&]() {
const auto now = chrono::high_resolution_clock::now();
const auto time = now.time_since_epoch();
const auto seed = time.count();
mt19937_64 random(seed);
uniform_int_distribution<int> uniform(10,1e9);
int N; string B, E;
do
N = uniform(random), E = expected(N), B = buggy(N);
while (B == E);
cout << "Hacking test-case" << endl,
cout << "N = " << N << endl,
cout << "Buggy answer: " << B << endl,
cout << "Expected answer: " << E << endl; };
const auto submission_code = [&]() {
int T; cin.tie(nullptr)->sync_with_stdio(false), cin >> T;
for (int N; T--; cout << expected(N) << '\n')
cin >> N; };
const auto test = true;
if (test)
hack_code();
else
submission_code();
return 0; }
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGNvbnN0IHZlY3RvcjxzdHJpbmc+IGFucyA9IHsiTk8iLCJZRVMifTsKICAgIGNvbnN0IGF1dG8gZXhwZWN0ZWQgPSBbJl0oaW50IE4pIHsKICAgICAgICBpbnQgcGFyaXR5LCBjb3VudFsyXSA9IHt9OwogICAgICAgIGZvciAoYXV0byBkaWdpdDogdG9fc3RyaW5nKE4pKQogICAgICAgICAgICArK2NvdW50W3Bhcml0eSA9IChkaWdpdC0nMCcpJjFdOwogICAgICAgIHJldHVybiBhbnNbY291bnRbcGFyaXR5XSA+IDFdOyB9OwogICAgY29uc3QgYXV0byBidWdneSA9IFsmXShpbnQgTikgewogICAgICAgIGVudW0ge05PLFlFU307CiAgICAgICAgaWYgKE4gPT0gMTApCiAgICAgICAgICAgIHJldHVybiBhbnNbTk9dOwogICAgICAgIGNvbnN0IGF1dG8gcGFyaXR5ID0gWyZdKGludCB4KSB7IHJldHVybiB4JTI7IH07CiAgICAgICAgZm9yIChpbnQgYSwgYiwgZGl2ID0gMTA7IE4vZGl2ID4gMDsgZGl2ICo9IDEwKQogICAgICAgICAgICBpZiAoYSA9IE4vZGl2LCBiID0gTiVkaXYsIGEgPT0gMCBvciBiID09IDApCiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgZWxzZSBpZiAocGFyaXR5KGEpID09IHBhcml0eShiKSkKICAgICAgICAgICAgICAgIHJldHVybiBhbnNbWUVTXTsKICAgICAgICByZXR1cm4gYW5zW05PXTsgfTsKICAgIGNvbnN0IGF1dG8gaGFja19jb2RlID0gWyZdKCkgewogICAgICAgIGNvbnN0IGF1dG8gbm93ICA9IGNocm9ubzo6aGlnaF9yZXNvbHV0aW9uX2Nsb2NrOjpub3coKTsKICAgICAgICBjb25zdCBhdXRvIHRpbWUgPSBub3cudGltZV9zaW5jZV9lcG9jaCgpOwogICAgICAgIGNvbnN0IGF1dG8gc2VlZCA9IHRpbWUuY291bnQoKTsKICAgICAgICBtdDE5OTM3XzY0IHJhbmRvbShzZWVkKTsKICAgICAgICB1bmlmb3JtX2ludF9kaXN0cmlidXRpb248aW50PiB1bmlmb3JtKDEwLDFlOSk7CiAgICAgICAgaW50IE47IHN0cmluZyBCLCBFOwogICAgICAgIGRvCiAgICAgICAgICAgIE4gPSB1bmlmb3JtKHJhbmRvbSksIEUgPSBleHBlY3RlZChOKSwgQiA9IGJ1Z2d5KE4pOwogICAgICAgIHdoaWxlIChCID09IEUpOwogICAgICAgIGNvdXQgPDwgIkhhY2tpbmcgdGVzdC1jYXNlIiA8PCBlbmRsLAogICAgICAgIGNvdXQgPDwgIk4gPSAiIDw8IE4gPDwgZW5kbCwKICAgICAgICBjb3V0IDw8ICJCdWdneSAgICBhbnN3ZXI6ICIgPDwgQiA8PCBlbmRsLAogICAgICAgIGNvdXQgPDwgIkV4cGVjdGVkIGFuc3dlcjogIiA8PCBFIDw8IGVuZGw7IH07CiAgICBjb25zdCBhdXRvIHN1Ym1pc3Npb25fY29kZSA9IFsmXSgpIHsKICAgICAgICBpbnQgVDsgY2luLnRpZShudWxscHRyKS0+c3luY193aXRoX3N0ZGlvKGZhbHNlKSwgY2luID4+IFQ7CiAgICAgICAgZm9yIChpbnQgTjsgVC0tOyBjb3V0IDw8IGV4cGVjdGVkKE4pIDw8ICdcbicpCiAgICAgICAgICAgIGNpbiA+PiBOOyB9OwogICAgY29uc3QgYXV0byB0ZXN0ID0gdHJ1ZTsKICAgIGlmICh0ZXN0KQogICAgICAgIGhhY2tfY29kZSgpOwogICAgZWxzZQogICAgICAgIHN1Ym1pc3Npb25fY29kZSgpOwogICAgcmV0dXJuIDA7IH0K