가장 짧은 쉼표 표현

점이 붙은 쉼표 명령 R들이 이어진 문자열이 주어질 때, 같은 총 길이를 가지면서 문자 수가 가장 적고 그중 사전순으로 가장 앞서는 표현을 구한다.

보통6동적 계획법그리디구현수학아직 제출이 없습니다시간 제한8초메모리 제한512 MB

문제

MML(Music Macro Language)은 악보를 문자로 적는 언어다. 방언이 여럿 있지만, 어느 방언이든 음표, 쉼표, 옥타브, 세기 같은 요소를 적는 명령을 갖춘다.

이 문제에서 다루는 것은 쉼표, 즉 소리가 나지 않는 구간뿐이다. 쉼표 명령은 명령 문자 R 뒤에 길이 지정자를 붙여서 쓴다. 길이 지정자는 1, 2, 4, 8, 16, 32, 64 중 한 수로 시작한다. 1은 온쉼표(1), 2는 그 절반(1/2), 4는 4분의 1(1/4), 8은 8분의 1(1/8)을 뜻하고 나머지도 같은 방식이다. 이 수를 기본 길이라고 부른다.

기본 길이 뒤에는 점을 하나 이상 붙일 수 있다. 첫 점은 기본 길이의 절반만큼 길이를 늘린다. 예를 들어 4.4(4분의 1)에 8(8분의 1, 4의 절반)을 더한 길이이므로 4의 1.5배다. 즉 R4.R4R8과 길이가 같다. 점이 둘 이상이면 각 점은 바로 앞 점이 더한 길이의 절반을 다시 더한다. 그래서 4..4816을 더한 길이이고, 4...48, 16, 32를 더한 길이다. 점이 더하는 길이는 64보다 짧아질 수 없다. 예를 들어 64.16...은 마지막 점이 64의 절반, 곧 128분의 1을 가리키므로 올바른 명령이 아니다.

쉼표 명령을 이어 붙인 문자열이 주어진다. 전체 길이가 그 문자열과 같으면서 글자 수가 가장 적은 표현을 구하라.

입력

첫 줄에 데이터 집합의 개수 NN이 주어진다. (1N501 \le N \le 50)

다음 NN개의 줄에 데이터 집합이 한 줄에 하나씩 주어진다. 각 줄은 올바른 쉼표 명령을 이어 붙인 문자열이고, 길이는 1자 이상 100,000자 이하다. 모든 줄의 길이 합은 200,000자를 넘지 않는다.

출력

각 데이터 집합마다 전체 길이가 입력과 같으면서 글자 수가 가장 적은 표현을 한 줄에 출력한다. 그런 표현이 여럿이면 사전순으로 가장 앞서는 것을 출력한다. 출력하는 표현도 올바른 쉼표 명령만으로 이루어져야 한다.

문자열 비교는 아스키 코드 순서를 따른다. 점 .이 숫자보다 앞서고, 숫자가 R보다 앞선다.