#include <cstdio>
#include <algorithm>
#include <fstream>
#include <iostream>
#include <vector>
#include <queue>
#include <map>
#include <cstring>
#include <string>
#include <set>
#include <stack>
#include <deque>
#define pb push_back

#define mp make_pair
#define f first
#define s second
#define ll long long

using namespace std;


int get_nr(string S) {
  int nr = 0;
  if (S[0] == '0') {
    return -1;
  }
  for (int i = 0; i < S.size(); ++i) {
    nr  = nr * 10 + S[i] - '0';
  }
  return nr;
}
string solve(string S) {
  string left = S.substr(0,2);
  string right = S.substr(3,2);

  if (left >= "24" || right >= "60") {
    return "NO";
  }
  if (right == "00") {
    return "YES";
  }
  if (left == right) {
    return "YES";
  }
  string rleft = left;
  reverse(rleft.begin(), rleft.end());
  if (rleft == right) {
    return "YES";
  }
  int prev = S[0] - '0';
  int valid = 1;
  for (int i = 1; i < S.size(); ++i) {
    if (i == 2) {
      continue;
    }
    int cur = S[i] - '0';
    if (prev != cur - 1) {
      valid = 0;
    }
    prev = cur;
  }
  if (valid == 1) {
    return "YES";
  }
  int nr = get_nr(left + right);
  for (int i = 0; i < 20; ++i) {
    if ( (1 << i) == nr ) {
      return "YES";
    }
  }
  return "NO";
}
int main() {
#ifndef ONLINE_JUDGE
  ifstream cin("test.in");
  ofstream cout("test.out");
#endif
  int N; cin >> N;
  for (int t = 0; t < N; ++t) {
    string S; cin >> S;
    cout << solve(S);
    cout << "\n";
  }
  return 0;
}