n 個の数字a0 ,a1 , ... ,an-1 とq が与えられる。
q 個のクエリーに対して適切な処理を行なって欲しい。
クエリーは以下の3種類の操作が存在する。
入力は以下のフォーマットで与えられる。
n q a0 a1 . . . an-1 x1 y1 z1 x2 y2 z2 . . . xq yq zq
xi = 0 なら、シフトのクエリーを表す。このとき、l = yi , r = zi とする。
xi = 1 なら、最小値を求めるクエリーを表す。このとき、l = yi , r = zi とする。
xi = 2 なら、値を更新するクエリーを表す。このとき、pos = yi , val = zi とする。
入力は以下の制約を満たす
1 ≤ n , q ≤ 200,000
0 ≤ ai ≤ 10,000,000
値を更新するクエリーについて、0 ≤ val ≤ 10,000,000
クエリーとしてxi = 1 が与えられたときに、答えの値を1行に出力せよ。
10 3 0 1 2 3 4 5 6 7 8 9 1 5 7 0 2 5 1 5 7
5 4
10 10 289383 930886 692777 636915 747793 238335 885386 760492 516649 641421 2 7 368690 1 3 6 0 2 6 1 1 8 0 2 9 2 2 665123 1 5 9 0 2 8 2 7 961393 1 1 2
238335 238335 238335 368690