#SGM0000027. Cây đoạn (Segment Tree)

Cây đoạn (Segment Tree)

Cây đoạn (Segment Tree)

Nguồn: AtCoder

Phiên bản: Phước Hưng OJ Extended

Đề bài

Cho dãy A1,A2,…,ANA_1,A_2,\ldots,A_N. Hãy xử lý QQ truy vấn:

  • 1 X V: gán AX=VA_X=V.
  • 2 L R: in max⁡(AL,AL+1,…,AR)\max(A_L,A_{L+1},\ldots,A_R).
  • 3 X V: tìm chỉ số nhỏ nhất jj thỏa X≤j≤NX\le j\le N và Aj≥VA_j\ge V. Nếu không tồn tại, in N+1N+1.

Input

Dòng đầu chứa N,QN,Q.

Dòng thứ hai chứa A1,A2,…,ANA_1,A_2,\ldots,A_N.

QQ dòng tiếp theo chứa các truy vấn.

Output

In đáp án của mỗi truy vấn loại 2 hoặc 3 trên một dòng.

Subtask

  • Subtask 1 — 20%: 1≤N,Q≤501\le N,Q\le50.
  • Subtask 2 — 30%: 1≤N,Q≤50001\le N,Q\le5000.
  • Subtask 3 — 50%: 1≤N,Q≤2⋅1051\le N,Q\le2\cdot10^5, 0≤Ai,V≤1090\le A_i,V\le10^9.

Ví dụ

Input

5 5
1 2 3 2 1
2 1 5
3 2 3
1 3 1
2 2 4
3 1 3

Output

3
3
2
6

Giải thích

Truy vấn loại 2 đầu lấy max toàn dãy bằng 33. Truy vấn loại 3 từ vị trí 22 với ngưỡng 33 tìm được vị trí 33. Sau cập nhật, các đáp án sau thay đổi tương ứng.