Mother gave a boy named Dima an array of length . This array is not just any array—it is special. Dima can choose three numbers , , and (1 \leq i \leq j \leq n, -1000 \leq d \leq 1000), and magically all elements with indices from to become equal to .
Dima enjoys playing with his array, and from time to time his mother asks him a question: what is the sum of all numbers in the array from index to , inclusive? Dima can easily answer these questions—but can you?
The first line contains two integers and (1 \leq n \leq 5 \cdot 10^5, 1 \leq q \leq 10^5): the number of elements in the array and the total number of operations and queries.
The second line contains integers a_1, a_2, \ldots, a_n (-1000 \leq a_i \leq 1000), representing the initial state of the array.
Each of the next lines contains either an operation or a query. Each line starts with either the character = or ?.
If a line starts with =, it describes an assignment operation. The next values are , , and , as described above.
If a line starts with ?, it describes a query. The next two values are and (1 \leq f, t \leq n).
For each query, print on a separate line the sum of the elements in the array from index to , inclusive.
Пример 1