동일이는 혼자서 할 수 있는 재미있는 놀이를 하나 생각해냈다.
놀이는 알파벳 소문자 N개로 이루어진 문자열 하나로 시작한다.
동일이는 이 문자열에서 임의의 두 글자를 서로 바꿀 수 있다. 이 동작은 0번 이상 원하는 만큼 반복할 수 있다.
목표는 사전순으로 가장 앞선 문자열을 만드는 것이다.
몇 번 해 보니 너무 쉬워서, 동일이는 규칙을 하나 더 만들었다. 완성된 문자열의 각 자리마다 그 자리에 올 수 있는 글자를 미리 정해 두는 것이다. 예를 들면 이런 식이다.
이 규칙은 최종 결과 문자열에만 적용된다. 놀이 도중에 나오는 문자열은 규칙을 지키지 않아도 된다.
규칙이 붙자 놀이가 훨씬 어려워졌다. 동일이를 도와 규칙을 지키면서 만들 수 있는 문자열 중 사전순으로 가장 앞선 것을 찾아라.
첫 줄에 테스트 케이스의 수 T가 주어진다. (1≤T≤100)
각 테스트 케이스의 첫 줄에는 놀이에 사용할 초기 문자열 S가 주어진다. S는 알파벳 소문자 N개로 이루어진다. (1≤N≤100)
이어지는 N개의 줄에는 문자열 Ci가 주어진다. Ci는 문자 Li개로 이루어지며, 결과 문자열의 i번째 글자에 올 수 있는 글자의 목록이다. (1≤Li≤5)
Ci에 등장하는 문자는 모두 초기 문자열 S에 한 번 이상 등장한다.
각 테스트 케이스마다 규칙을 지키면서 만들 수 있는 사전순으로 가장 앞선 문자열을 한 줄에 출력한다. 규칙을 지키는 문자열을 만들 수 없으면 NO SOLUTION을 출력한다.