B - 文字列の反転 Editorial /

Time Limit: 2 sec / Memory Limit: 256 MB

問題文

半角の小文字アルファベットのみからなる文字列 S が与えられる。 文字列 S に対して以下の操作 1 から操作 N までを番号の昇順に行う。

  • 操作 i : 左から l_i 番目の文字を左端、左から r_i (1 ≦ l_i < r_i ≦ |S|) 番目の文字を右端とした部分文字列を逆順にする。

例えば,文字列 abcdef に対して、左から 3 番目の文字 c を左端、左から 5 番目の文字 e を右端とした部分文字列を逆順にすると、文字列 abedcf が得られる。

操作 1 から操作 N までを番号の昇順に行った後の文字列を出力せよ。


入力

入力は以下の形式で標準入力から与えられる。

S
N
l_1 r_1
l_2 r_2
:
l_N r_N
  • 1 行目には、半角の小文字アルファベットのみからなる文字列 S (1 ≦ |S| ≦ 100) が与えられる。
  • 2 行目には、操作の回数を表す整数 N (1 ≦ N ≦ 100) が与えられる。
  • 3 行目から N 行では、操作に関する情報が与えられる。N 行のうち i 行目では、2 つの整数 l_ir_i (1 ≦ l_i < r_i ≦ |S|) が空白区切りで与えられる。これは、操作 i が左から l_i 番目の文字を左端、左から r_i 番目の文字を右端とした部分文字列を逆順にする操作であることを表す。

出力

全操作後の文字列を 1 行に出力せよ。(21:49 表現の変更)出力の末尾に改行を入れること。


入力例1

abcdef
2
3 5
1 4

出力例1

debacf
  • 操作 1 の後、文字列は abedcf となっている。
  • 操作 2 の後、文字列は debacf となっている。

入力例2

redcoat
3
1 7
1 2
3 4

出力例2

atcoder