복사와 붙여넣기
시간 제한17초메모리 제한512 MB
문자열에 N번의 복사 후 붙여넣기 연산을 적용합니다. 각 연산은 A부터 B까지의 부분 문자열을 C 위치에 삽입하고, 길이가 M을 넘으면 오른쪽 끝을 잘라 M자로 맞춥니다.
문제
텍스트 편집기의 가장 중요한 기능 중 하나는 복사 & 붙여넣기입니다. JOI 사는 복사 & 붙여넣기를 매우 빠르게 처리하는 텍스트 편집기 개발을 시작했습니다. JOI 사의 우수한 프로그래머인 당신은 핵심이 되는 복사 & 붙여넣기 처리를 구현하는 담당자가 되었습니다. JOI 사의 운명이 걸려 있으므로, 정확하고 빠른 프로그램을 반드시 만들고 싶습니다.
처음에 파일의 내용은 문자열 S입니다. 이어서 복사 & 붙여넣기 연산이 N번 수행됩니다. i번째 연산은 위치 A_i부터 위치 B_i까지의 문자열을 복사하여, 복사한 문자열을 원래 문자열의 위치 C_i에 삽입해 붙여넣는 것입니다. 위치 x는 문자열의 처음에서 x개의 문자를 지난 직후의 자리를 뜻합니다(위치 0은 문자열의 처음입니다). 단, 연산 후 문자열의 길이가 M을 넘으면 길이가 M이 될 때까지 문자열의 오른쪽 끝에서부터 문자를 삭제합니다.
문자열의 길이 상한 M, 초기 문자열 S, 연산 횟수 N, 그리고 N번의 복사 & 붙여넣기 지시가 주어졌을 때, N번의 연산을 마친 후의 문자열을 출력하는 프로그램을 작성하세요.
입력
첫째 줄에는 문자열 길이의 상한을 나타내는 정수 M이 주어집니다.
둘째 줄에는 초기 문자열 S가 주어집니다. S는 영문 소문자로 이루어지며, 길이는 1 이상 M 이하입니다.
셋째 줄에는 연산 횟수를 나타내는 정수 N이 주어집니다. 3+i째 줄(1 ≤ i ≤ N)에는 정수 A_i, B_i, C_i가 공백으로 구분되어 주어지며, i번째 연산은 위치 A_i부터 위치 B_i까지의 문자열을 복사하여 위치 C_i에 삽입해 붙이는 것입니다. i번째 연산 직전 문자열의 길이를 L_i라 하면 및 를 만족합니다.
출력
N번의 연산 후 얻은 문자열을 한 줄에 출력합니다.
제한
(문자열 길이의 상한)
(연산 횟수)