디퍼와 장치
시간 제한2초메모리 제한1024 MB
구간 안의 모든 문자열 뒤에 문자열을 덧붙이는 명령과, 특정 칸 문자열의 부분 문자열을 묻는 명령을 처리합니다.
문제
디퍼가 오늘 다락방에서 이상한 장치를 발견했다. 장치에는 1번부터 번까지 번호가 붙은 슬롯이 차례로 놓여 있다. 각 슬롯에는 문자열이 하나씩 들어 있고, 처음에는 모든 슬롯이 빈 문자열이다. 장치는 , , 가 주어지면 번 슬롯부터 번 슬롯까지 모든 문자열의 끝에 문자열 를 덧붙인다.
디퍼는 메이블이 장치의 동작을 모델링할 수 없다고 내기를 걸었다. 디퍼가 명령을 내리면 메이블은 같은 명령을 동시에 따라 한다. 메이블이 장치의 동작을 정확히 재현하는지 확인하기 위해 디퍼는 가끔 다음 질문을 한다. 슬롯 의 문자열에서 번째 문자부터 번째 문자까지의 부분 문자열은 무엇인가? 메이블은 이 과정을 시뮬레이션하는 프로그램을 작성하려고 한다. 이를 도와 달라.
입력
첫 줄에 두 자연수 , 이 주어진다. 은 슬롯의 개수이고, 은 디퍼의 명령 개수이다 (; ).
다음 개의 줄에 명령이 한 줄에 하나씩 주어진다. 명령은 다음 두 종류 중 하나이다.
- 1 : 번 슬롯부터 번 슬롯까지 모든 문자열의 끝에 비어 있지 않은 문자열 를 덧붙인다 (). 문자열 는 영어 소문자로만 이루어져 있다.
- 2 : 번 슬롯의 문자열에서 번째 문자부터 번째 문자까지의 부분 문자열을 구한다 (; ). 슬롯 의 문자열 길이는 항상 이상이다.
1번 종류 명령에 주어지는 문자열 길이의 합은 을 넘지 않는다. 2번 종류 명령에서 구하는 부분 문자열 길이의 합은 을 넘지 않는다.
출력
2번 종류 명령마다 답을 별도의 줄에 출력한다.