program Project1; var i, j, n, k, lich, pam : integer; t : array[1..12] of integer; f, g : text; procedure sort(); begin for i := 1 to 12 do begin for j := i + 1 to 12 do begin if t[i] < t[j] then begin pam := t[i]; t[i] := t[j]; t[j] := pam; end; end; end; end; function perev():boolean; var o : boolean; begin o := false; if (t[1] = t[2]) and (t[2] = t[3]) and (t[3] = t[4]) then begin if (t[5] = t[6]) and (t[7] = t[6]) and (t[7] = t[8]) then begin if (t[9] = t[10]) and (t[10] = t[11]) and (t[11] = t[12]) then begin o := true; end; end; end; perev := o; end; begin assign(g, 'matches.out'); rewrite (g); assign(f, 'matches.in'); reset(f); read(f, n); lich := 1; i := 1; while lich <= n do begin for i := 1 to 12 do read(f, t[i]); sort(); if perev = true then begin writeln(g, 'yes'); end else begin writeln(g, 'no'); end; inc(lich); end; close(g); end.