#include <iostream>

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;
}