바꾸기 놀이

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

문제

동일이는 혼자서 할 수 있는 재미있는 놀이를 하나 생각해냈다.

놀이는 알파벳 소문자 NN개로 이루어진 문자열 하나로 시작한다.

동일이는 이 문자열에서 임의의 두 글자를 서로 바꿀 수 있다. 이 동작은 0번 이상 원하는 만큼 반복할 수 있다.

목표는 사전순으로 가장 앞선 문자열을 만드는 것이다.

몇 번 해 보니 너무 쉬워서, 동일이는 규칙을 하나 더 만들었다. 완성된 문자열의 각 자리마다 그 자리에 올 수 있는 글자를 미리 정해 두는 것이다. 예를 들면 이런 식이다.

  • 첫 글자는 a 또는 b여야 한다.
  • 두 번째 글자는 b 또는 c여야 한다.

이 규칙은 최종 결과 문자열에만 적용된다. 놀이 도중에 나오는 문자열은 규칙을 지키지 않아도 된다.

규칙이 붙자 놀이가 훨씬 어려워졌다. 동일이를 도와 규칙을 지키면서 만들 수 있는 문자열 중 사전순으로 가장 앞선 것을 찾아라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. (1T1001 \le T \le 100)

각 테스트 케이스의 첫 줄에는 놀이에 사용할 초기 문자열 SS가 주어진다. SS는 알파벳 소문자 NN개로 이루어진다. (1N1001 \le N \le 100)

이어지는 NN개의 줄에는 문자열 CiC_i가 주어진다. CiC_i는 문자 LiL_i개로 이루어지며, 결과 문자열의 ii번째 글자에 올 수 있는 글자의 목록이다. (1Li51 \le L_i \le 5)

CiC_i에 등장하는 문자는 모두 초기 문자열 SS에 한 번 이상 등장한다.

출력

각 테스트 케이스마다 규칙을 지키면서 만들 수 있는 사전순으로 가장 앞선 문자열을 한 줄에 출력한다. 규칙을 지키는 문자열을 만들 수 없으면 NO SOLUTION을 출력한다.