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.