Note
C++
JAVA
JavaScript
文字列変換
文字列 $str$ に対して、与えられた命令の列を実行するプログラムを作成してください。命令は以下の操作のいずれかです:
- print a b: $str$ の a 文字目から b 文字目までを出力する。
- reverse a b: $str$ の a 文字目から b 文字目までを逆順にする。
- replace a b p: $str$ の a 文字目から b 文字目までを p に置き換える。
ここでは、文字列 $str$ の最初の文字を 0 文字目とします。
Input
1 行目に文字列 $str$ が与えられます。$str$ は英小文字のみ含みます。2 行目に命令の数 $q$ が与えられます。続く $q$ 行に各命令が上記の形式で与えられます。
Output
各 print 命令ごとに文字列を1行に出力してください。
Constraints
- $1 \leq str の長さ \leq 1000$
- $1 \leq q \leq 100$
- $0 \leq a \leq b < str の長さ$
- replace 命令では $b - a + 1 = p の長さ$
Sample Input 1
abcde
3
replace 1 3 xyz
reverse 0 2
print 1 4
Sample Output 1
xaze
Sample Input 2
xyz
3
print 0 2
replace 0 2 abc
print 0 2
Sample Output 2
xyz
abc