/*
 * Code by Spiromanul
 */

# include "iostream"
# include "cstring"
# include "vector"
# include "queue"
# include "bitset"
# include "algorithm"
# include "deque"

const char IN [ ] = "input" ;
const char OUT [ ] = "output" ;
const int MAX = 114 ;
const int LENGTH = 5014 ;
const int SIGMA = 27 ;
const int MOD = 666013 ;

# define pb push_back
# define mp make_pair
# define FORN( a , b , c ) for ( int a = b ; a <= c ; ++ a )
# define FORNBACK( a , b , c ) for ( int a = b ; a >= c ; -- a )

using namespace std;



long long int R(){
	char r;
	bool start=false,neg=false;
	long long int ret=0;
	while(true){
		r=getchar();
		if((r-'0'<0 || r-'0'>9) && r!='-' && !start){
			continue;
		}
		if((r-'0'<0 || r-'0'>9) && r!='-' && start){
			break;
		}
		if(start)ret*=10;
		start=true;
		if(r=='-')neg=true;
		else ret+=r-'0';
	}
	if(!neg)
		return ret;
	else
		return -ret;
}

string can ( char *sir , int l )
{
    int x = sir [ 1 ] - '0' ;
    x *= 1000 ;
    x += ( sir [ 2 ] - '0' ) * 100 ;
    if ( ( sir [ 1 ] - '0' ) * 10 + ( sir [ 2 ] - '0' ) > 24 ) return "NO\n" ;
    if ( ( sir [ 4 ] - '0' ) * 10 + ( sir [ 5 ] - '0' ) * 1 >= 60 ) return "NO\n" ;
    x += ( sir [ 4 ] - '0' ) * 10 ;
    x += ( sir [ 5 ] - '0' ) * 1 ;
    if ( sir [ 4 ] == sir [ 5 ] and sir [ 5 ] == '0' )
        return "YES\n" ;
    if ( sir [ 1 ] == sir [ 4 ] and sir [ 2 ] == sir [ 5 ] )
        return "YES\n" ;
    if ( sir [ 1 ] == sir [ 5 ] and sir [ 2 ] == sir [ 4 ] )
        return "YES\n" ;
    if ( sir [ 1 ] + 1 == sir [ 2 ] and sir [ 2 ] + 1 == sir [ 4 ] and sir [ 4 ] + 1 == sir [ 5 ] )
        return "YES\n" ;
    for ( int i = 1024 ; i < 9999 ; i <<= 1 )
        if ( x == i )
        return "YES\n" ;
    return "NO\n" ;
}

int main ( void )
{
    int t ;
    cin >> t ;
    FORN ( k ,1 , t )
    {
        char sir [ 20 ] ;
        cin >> ( sir + 1 ) ;
        int l = strlen ( sir + 1 ) ;
        cout << can ( sir , l ) ;
    }
    return 0;
}