카드 문자열

대문자 카드를 왼쪽부터 하나씩 가져오면서 새 카드를 문자열의 맨 앞이나 맨 뒤에 놓을 때, 만들 수 있는 문자열 중 사전순으로 가장 앞선 것을 구한다.

보통4그리디문자열구현완전 탐색면접 대비아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

NN장의 카드가 일렬로 놓여 있다. 각 카드에는 대문자 알파벳이 하나씩 적혀 있다. 태욱이는 가장 왼쪽 카드부터 차례대로 한 장씩 가져올 수 있다. 처음 가져온 카드는 자기 앞에 그대로 놓는다. 그다음부터는 가져온 카드를 이미 앞에 놓인 카드의 가장 왼쪽이나 가장 오른쪽에 놓는다. 카드를 모두 가져온 뒤 앞에 놓인 카드를 왼쪽부터 이어 붙이면 카드 문자열이 된다.

예를 들어 카드 세 장이 M, K, U 순으로 놓여 있다고 하자. 태욱이는 먼저 M이 적힌 카드를 가져와 자기 앞에 놓는다. 다음으로 K가 적힌 카드를 가져와 가장 왼쪽에 놓고, 이어서 U가 적힌 카드를 가져와 다시 가장 왼쪽에 놓으면 UKM이 된다. K가 적힌 카드를 가장 왼쪽에 놓고 U가 적힌 카드를 가장 오른쪽에 놓으면 KMU가 된다. 이렇게 만들 수 있는 문자열 중 사전 순으로 가장 앞서는 것은 KMU이다.

카드에 적힌 알파벳의 처음 순서가 주어질 때, 태욱이가 만들 수 있는 카드 문자열 중 사전 순으로 가장 앞서는 문자열을 출력하는 프로그램을 작성하시오.

입력

입력은 표준 입력으로 받는다. 첫째 줄에 테스트 케이스의 개수 TT (1T1001 \le T \le 100)가 주어진다. 각 테스트 케이스의 첫째 줄에는 처음에 놓여 있는 카드의 개수 NN (1N10001 \le N \le 1000)이 주어진다. 둘째 줄에는 카드에 적힌 알파벳 NN개가 가장 왼쪽 카드부터 순서대로 공백으로 구분되어 주어진다. 알파벳은 모두 대문자이고, 카드마다 한 개씩 적혀 있다.

출력

출력은 표준 출력으로 한다. 각 테스트 케이스마다 태욱이가 만들 수 있는 카드 문자열 중 사전 순으로 가장 앞서는 문자열을 한 줄에 하나씩 출력한다.