Copy and Paste

길이 상한 M이 있는 문자열에 N번의 복사·붙여넣기 연산을 수행한다. 연산 후 길이가 M을 넘으면 오른쪽 끝부터 문자를 삭제하고, 모든 연산이 끝난 뒤의 문자열을 출력한다.

어려움8구현완전 탐색문자열시뮬레이션아직 제출이 없습니다시간 제한17초메모리 제한512 MB

문제

テキストエディタの最も重要な機能の 1 つとして,コピー&ペースト (複写・貼付) がある.JOI 社は,コ ピー&ペーストを非常に高速に処理するテキストエディタの開発を開始した.JOI 社に所属する優秀なプ ログラマであるあなたは,核となるコピー&ペーストの処理の実装の担当となった.JOI 社の命運が懸かっ ているので,何としても正確かつ高速なプログラムを作成したい.

具体的な仕様は次のとおりである.初め,ファイルの内容は文字列 S である.引き続いて,コピー&ペー ストの操作が N 回行われる.i 回目の操作は,位置 Ai から位置 Bi までの文字列を複写し,複写された文字 列を元の文字列の位置 Ci に挿入貼付する,というものである.ここで,位置 x とは,文字列の先頭から x 個の文字をたどった直後の箇所を表す (位置 0 は文字列の先頭である).ただし,操作後に文字列の長さが M を超えた場合,長さが M になるまで文字列の右端から順に文字が削除される.N 回の操作後に得られる 文字列を求めたい.

文字列の長さの上限 M,初めの文字列 S,操作の回数 N および N 回のコピー&ペーストの操作の指示が 与えられたとき,操作後の文字列を出力するプログラムを作成せよ.

입력

標準入力から以下の入力を読み込め.

  • 1 行目には整数 M が書かれており,文字列の長さの上限を表す.
  • 2 行目には文字列 S が書かれており,初めの文字列を表す.S はアルファベットの小文字からなり, 長さは 1 以上 M 以下である.
  • 3 行目には整数 N が書かれており,操作の回数を表す.
    3 + i 行目 (1 ≤ i ≤ N) には整数 Ai, Bi, Ci が空白を区切りとして書かれており,i 回目の操作は位置 Ai から位置 Bi までの文字列を複写し位置 Ci に挿入貼付する,というものであることを表す.i 回目の 操作の直前の文字列の長さを Li とすると,0 ≤ Ai < Bi ≤ Li および 0 ≤ Ci ≤ Li を満たす.

출력

標準出力に,N 回の操作後の文字列を 1 行で出力せよ.

제한

  • 1 ≤ M ≤ 1 000 000 文字列の長さの上限
  • 1 ≤ N ≤ 1 000 000 操作の回数