새 젖소 RFID 코드
시간 제한1초메모리 제한128 MB
각 자리에 쓸 수 있는 서로 다른 글자들이 주어질 때, 한 코드 안에서 글자가 겹치지 않는 유효한 코드들을 사전순으로 나열하고 start번부터 finish번까지 출력한다.
문제
존 아저씨는 벌겋게 달군 인두로 낙인을 찍는 대신 젖소에게 RFID 태그를 사용하기로 했습니다.
각 RFID 태그에는 길이가 정확히 ()인 코드가 저장됩니다. 코드의 각 문자는 알파벳 대문자 A부터 Z 중 하나이며, 하나의 코드 안에서 같은 문자가 두 번 이상 나타나지 않습니다.
코드의 각 자리에 쓰이는 문자는 그 자리마다 미리 정해진 허용 문자 집합에서 고릅니다. 각 집합은 알파벳 순서로 주어집니다.
기계는 유효한 모든 코드를 알파벳(사전) 순서로 나열하고 번부터 번호를 매깁니다. 새로운 젖소 무리는 아직 쓰지 않은 다음 코드들을 순서대로 사용하며, 존 아저씨는 지금까지 사용한 코드의 개수를 기록해 둡니다.
다음 무리가 사용할 첫 번째 코드와 마지막 코드의 번호 와 가 주어집니다 (, ). 번부터 번까지의 코드를 알파벳 순서로 모두 출력하세요.
입력
- 첫째 줄에 세 정수 , , 가 공백으로 구분되어 주어집니다.
- 다음 개의 줄에는 각 자리에 허용되는 문자들이 주어집니다. 각 줄은 서로 다른 대문자 개 이상 개 이하로 이루어진 문자열이며, 알파벳 순서로 정렬되어 있습니다.
출력
개의 줄을 출력합니다. 번째 줄에는 번 코드를 출력합니다. (코드는 알파벳 순서로 번부터 번호가 매겨집니다.)