#include struct pctime { pctime(const std::string&s) { h = to_digit(s[0]) * 10 + to_digit(s[1]); m = to_digit(s[3]) * 10 + to_digit(s[4]); } bool is_valid() {return (0 <= m) && (m < 60) && (0 <= h) && (h < 24);} bool is_exact() {return (m == 0);} bool is_doubled() {return (h == m);} bool is_mirror() {return (h/10 == m%10) && (h%10 == m/10);} bool is_increasing() {return (h/10 == h%10 - 1) && (h%10 == m/10 - 1) && (m/10 == m%10 - 1);} bool is_pow2(int i) { if (i<2) return false; if (i==2) return true; if (i%2 == 0) return is_pow2(i/2); return false; } bool is_pow2() {return is_pow2(h*100+m);} bool is_peculiar() { if (is_valid()) { return is_exact() || is_doubled() || is_mirror() || is_increasing() || is_pow2(); } return false; } int to_digit(char c) { return c - '0'; } int m; int h; }; int main() { int n; std::cin >> n; std::cin.get(); for (int i = 0; i < n; i++) { char str[256]; std::cin.getline(str, 256); pctime t(str); if (t.is_peculiar()) { std::cout << "YES" << std::endl; } else { std::cout << "NO" << std::endl; } } return 0; }