## A Fenwick Tree Problem

Bob is playing with an array!

Having studied the Fenwick Tree recently, Bob is curious whether he'd be able to solve the following types of operations to the array:

`Q1 i j`

: Calculate and output the sum of the subarray between the indices \(i\) and \(j\) \((1 \le i \le j \le N)\) inclusive.`Q2 L R`

: Count and output the number of elements in the array with values in between \(L\) and \(R\) \((0 \le L \le R \le 10^5)\) inclusive.`U i v`

: Change the value of the \(i\)-th element \((1 \le i \le N)\) in the array to \(v\) \((0 \le v \le 10^5)\).

Unfortunately, Bob needs a little bit of help. Can you do it for him instead?

#### Input Specification

The first line contains two integers \(N\) and \(Q\) \((1 \le N, Q \le 10^5)\), the size of the array and the number of operations to the array.

The second line contains \(N\) nonnegative integers, each separated by a space. The value of these elements are **nonnegative** and will never exceed \(10^5\).

The next \(Q\) lines each contain an operation to be performed on the array.

The values inside the array will always be between \(0\) and \(10^5\) inclusive.

#### Output Specification

On a new line, output an integer for every `Q1`

and `Q2`

query representing the answer to the respective queries.

#### Sample Input

```
5 2
3 1 0 5 2
Q1 1 3
Q2 2 4
```

#### Sample Output

```
4
2
```

#### Explanation of Output

The sum of the subarray can be described as \(3 + 1 + 0 = 4\) (These are the first three elements in the array).

Overall, there are \(2\) elements that fall in the range \([2, 4]\), which are the first and last elements in the array.

## Comments