Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

P145SUMJ - ROUND 5J - Truy vấn

Cho một dãy số A=(a_1,a_2,…,a_n ) và các loại truy vấn sau:

* 1 i j x: (i≤j) gán các phần từ thứ i đến thứ j trong dãy bằng x;

* 2 i j x: (i≤j) cộng phần tử thứ i cho x, thứ i+1 cho 2x,... , thứ j cho (j-i+1)x;

* 3 i x: chèn x vào trước phần tử thứ i của dãy hiện thời;

* 4 i j: (i≤j) Tính tổng từ phần tử thứ i đến phần tử thứ j.

Input

* Dòng đầu ghi hai số nguyên n ≤ 10^5 và số truy vấn Q ≤ 10^5.
* Dòng tiếp theo mô tả dãy số. Mỗi số không vượt quá 10^5.
* Q dòng tiếp theo mô tả các truy vấn theo định dạng như trong đề bài. Trong mọi truy vấn, 0 ≤ x ≤ 10^5.

Output

In ra kết quả cho từng truy vấn loại 4.

Example

Input:
5 5 
1 2 3 4 5
1 5 5 0
4 4 5
4 5 5
2 1 5 1
4 1 5 Output: 4
0
25

Được gửi lên bởi:adm
Ngày:2014-07-22
Thời gian chạy:1s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.