단어
시간 제한1초메모리 제한128 MB
길이 n인 이진 단어에 순환 재작성 규칙을 s번 적용한 뒤, 사전순으로 가장 작은 회전 형태를 출력한다.
문제
Wright 박사의 수업에서 변형된 L-시스템을 공부하고 있다. 필요한 내용은 다음과 같다.
두 글자 알파벳 위에서 길이가 인 단어를 생각한다. 이 단어는 순환(cyclic) 단어로, 가지 순환 이동(cyclic shift) 형태 중 어느 것으로도 쓸 수 있으며, 첫 글자와 마지막 글자는 서로 이웃으로 취급한다.
재작성 규칙은 위치 의 글자를 위치 , , 의 글자에 따라 바꾼다(인덱스는 순환으로 계산한다). 한 단계에서 단어의 모든 글자를 동시에 재작성한다.
시작 단어와 재작성 규칙의 집합이 주어질 때, 번 재작성한 뒤 단어가 어떤 모습인지 구하여라.
입력
입력은 여러 개의 블록으로 이루어지며, 각 블록은 하나의 시스템을 설명한다.
- 첫째 줄에는 단어의 길이를 나타내는 정수 이 주어진다 ().
- 둘째 줄에는 시작 단어가 주어지며, 소문자
a와b로만 이루어져 있다. - 그다음 여덟 줄에는 각각 네 글자 가 주어지며, 하나의 재작성 규칙을 나타낸다. 위치 의 글자가 , 위치 의 글자가 , 위치 의 글자가 이면, 재작성 후 위치 의 글자는 가 된다. 여덟 개의 규칙은 올바르고 완전하다(의 모든 조합을 빠짐없이 덮는다).
- 블록의 마지막 줄에는 정수 가 주어진다 ().
입력의 끝까지 모든 블록을 처리한다.
출력
각 블록마다 한 줄에 번 재작성한 뒤의 단어를 출력한다. 단어는 순환 단어이므로 가지 이동 형태로 쓸 수 있는데, a < b라고 할 때 그중 사전순으로 가장 작은 형태를 출력한다.