var v:array[1..50] of string[3];



 function valid (s1,s2:string):boolean;
 var s:string[4]; e,a,b:integer;
 begin

  val(s1,a,e); val(s2,b,e);

  s:=s1+s2;

  if ((s1[1] in ['0'..'9']) and (s1[2] in ['0'..'9']) and (s2='00'))
  or ((s1[1]=s2[1]) and (s1[2]=s2[2]))
  or ((s1[1]=s2[2]) and (s1[2]=s2[1]))
  and ((a in [0..24]) and (b in [0..60]))
  or ((s='1024') or (s='2048'))
  or ((s='0123') or (s='1234') or (s='2345'))
  then valid:=true
  else valid:=false;
 end;



 procedure citire;
 var x,c,s:string; n,i:integer;
 begin

  readln(n);

  for i:=1 to n do
      begin

       readln(s);

       c:=s[1]+s[2]; x:=s[4]+s[5];

       if valid(c,x) then v[i]:='YES'
                     else v[i]:='NO';
      end;

  for i:=1 to n do
      writeln(v[i]);
 end;

begin
 citire;
end.