루미큐브

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

루미큐브는 규칙이 단순한 게임이라 나이 지긋한 어르신이 손주와 자주 즐긴다. 타일은 파랑(b), 초록(g), 빨강(r), 노랑(y) 네 가지 색으로 나뉜다. 색마다 11번부터 NN번까지 번호를 붙인 서로 다른 타일이 있고(N>0N > 0), 타일의 번호가 그 타일의 값이다. (값, 색) 조합마다 타일이 두 장씩 있다.

게임을 시작할 때 심판이 참가자마다 손패를 나눠 주고, 나눠 준 손패는 그 참가자만 본다. 아무에게도 가지 않은 타일은 뒷면을 위로 해서 탁자에 쌓아 더미를 만든다. 참가자는 차례를 돌아가며 타일을 낸다. 낼 수 있는 타일은 그룹이나 런에 속하는 타일뿐이다. 그룹은 값이 같고 색이 서로 다른 타일 세 장 이상을 모은 것이다. 런은 색이 같고 값이 연속하는 타일 세 장 이상을 모은 것이다. 낼 수 있는 타일이 하나도 없는 참가자는 더미에서 타일을 한 장 가져와야 한다.

어르신들은 한 차례에 타일을 많이 내고 싶어 하고, 진행이 멈추기 때문에 더미에서 타일을 가져오는 것을 싫어한다. 그런데도 손패에 있는 런이나 그룹을 못 보고 넘겨서 괜히 타일을 가져오는 일이 있다. 손패가 주어질 때 런이나 그룹을 새로 만들 수 있는지 판정하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스는 두 줄로 이루어진다.

  • 첫째 줄에 참가자가 손에 든 타일의 개수 MM이 주어진다. (1M8001 \le M \le 800)
  • 둘째 줄에 손에 든 타일 MM개가 공백으로 구분되어 주어진다. 각 타일은 값 VV(1V1001 \le V \le 100) 뒤에 색을 나타내는 문자 b, g, r, y 중 하나를 붙인 문자열이다.

출력

각 테스트 케이스마다 런이나 그룹을 만들 수 있으면 YES를, 만들 수 없으면 NO를 한 줄에 출력한다.