라미큐브는 A, B, C, D 네 가지 색마다 1부터 13까지 번호가 적힌 타일을 쓰는 게임이다. 손에 든 타일 14장으로 그룹이나 런을 만드는 것이 목표다.
그룹은 번호가 같고 색이 모두 다른 타일 3장 또는 4장이다. 런은 색이 같고 번호가 연속인 타일 3장 이상이다. 조합의 점수는 그 조합에 든 타일 번호의 합이다.
타일은 색 문자 하나 뒤에 1 이상 13 이하의 번호를 붙여 적는다. A5, B5, C5는 그룹이고 A5, A6, A7은 런이다.
손패에 같은 타일이 두 장 이상 들어올 수 있다. 조합은 서로 다른 타일로만 만들므로 중복된 사본은 세지 않는다.
손패마다 그룹이나 런을 만들 수 있는지 판정하고, 만들 수 있으면 점수가 가장 높은 조합을 구하라. 점수가 가장 높은 조합이 여럿이면 정렬한 타일 목록을 앞에서부터 한 장씩 비교해서 색 문자가 작은 쪽을 고르고, 색이 같으면 번호가 작은 쪽을 고른다. 한쪽이 다른 쪽의 앞부분과 그대로 같으면 타일 수가 적은 쪽을 고른다.
예를 들어 A5 B5 C5 A6 A7 B13 A12 C1 C9 D1 D2 D3 D7 D12에서는 그룹 A5 B5 C5가 15점, 런 A5 A6 A7이 18점, 런 D1 D2 D3이 6점이므로 답은 18점짜리 A5 A6 A7이다.
첫 줄에 데이터 집합의 개수 T가 주어진다. (1≤T≤100)
다음 T개의 줄에는 각각 타일 14개가 공백으로 구분되어 순서 없이 주어진다. 각 타일은 A, B, C, D 중 한 문자 뒤에 1 이상 13 이하의 정수를 붙인 문자열이다.
데이터 집합마다 한 줄씩 출력한다.
그룹도 런도 만들 수 없으면 NO GROUPS OR RUNS를 출력한다. 만들 수 있으면 점수가 가장 높은 조합의 타일을 색 문자 오름차순으로, 색이 같으면 번호 오름차순으로 정렬해 공백으로 구분해 출력하고, 같은 줄 끝에 그 조합의 점수를 출력한다.