편지
시간 제한2초메모리 제한512 MB
최대 10^12번 반복되는 교환 및 알파벳 이동 규칙 목록을 문자열에 적용한 뒤 최종 내용을 출력한다.
문제
현수는 요즘 "Bell"이라는 게임을 즐겨 한다. "Bell" 게임에서는 상대방에게 영문 대문자로 이루어진 편지를 보낼 수 있는데, 편지의 내용을 입력하면 특이하게도 편지 자체가 조종할 수 있는 캐릭터가 된다. 캐릭터가 이동하는 도중에는 장애물이 등장하는데, 장애물과 부딪히면 편지가 데미지를 입으며 아래 두 규칙 중 하나에 따라 내용이 바뀐다.
- 편지의 서로 다른 위치의 문자 2개를 교환한다.
- 편지의 특정 위치의 문자를, 그 문자로부터 알파벳 순서로 번째 뒤에 오는 문자로 변경한다. Z 뒤에는 다시 A가 온다.
게임이 시작될 때마다 편지를 변경하는 규칙 목록이 무작위로 생성된다. 이 규칙은 캐릭터가 데미지를 입을 때마다 목록 순서대로 적용되며, 목록의 끝에 도달하면 다시 처음으로 돌아간다. 수식으로 표현하면, 규칙 목록의 길이가 이고 현재 입은 데미지가 번째 데미지일 때, 편지에는 번째 규칙이 적용된다.
현수의 원래 편지 내용, 규칙 목록, 편지가 데미지를 입은 횟수가 주어질 때, 모든 데미지를 입은 후의 편지 내용을 구하는 프로그램을 작성해 보자.
입력
첫 번째 줄에는 공백을 사이에 두고 현수가 작성한 편지의 길이 , 규칙 목록의 길이 , 데미지를 입은 횟수 가 정수로 주어진다.
두 번째 줄에는 현수가 작성한 편지가 길이 의 문자열로 주어진다.
세 번째 줄부터 개의 줄에 걸쳐 규칙 목록이 주어진다. 규칙은 다음 두 형태 중 하나이며, index는 0부터 시작한다.
S i j: 편지의 번째 index와 번째 index의 문자를 교환한다.A i x: 편지의 번째 index의 문자를 그 문자의 번째 뒤에 오는 문자로 변경한다.
출력
번 데미지를 입은 후의 편지 내용을 출력한다.