#SGM0000026. Truy vấn lương (Salary Queries)

Truy vấn lương (Salary Queries)

Truy vấn lương (Salary Queries)

Nguồn: CSES

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

Đề bài

Một công ty có nn nhân viên, nhân viên ii có mức lương hiện tại pip_i. Có qq truy vấn:

  • ! k x: đổi lương của nhân viên kk thành xx.
  • ? a b: đếm số nhân viên có mức lương thuộc đoạn [a,b][a,b].

Input

Dòng đầu chứa n,qn,q.

Dòng thứ hai chứa p1,p2,…,pnp_1,p_2,\ldots,p_n.

qq dòng tiếp theo là các truy vấn.

Output

Với mỗi truy vấn ?, in số nhân viên thỏa điều kiện.

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, các mức lương và biên truy vấn thuộc [1,109][1,10^9].

Ví dụ

Input

5 3
3 7 2 2 5
? 2 3
! 3 6
? 2 3

Output

3
2

Giải thích

Ban đầu có ba mức lương thuộc [2,3][2,3]: 3,2,23,2,2. Sau khi đổi lương nhân viên 33 từ 22 thành 66, chỉ còn hai người trong đoạn.