#include <cstdio>
#include <vector>
#include <algorithm>
#include <cassert>
using namespace std;
#define BASE 131072
#define MAX_N 100004
#define LL long long
LL tree[2 * BASE];
LL inp[MAX_N];
int n, q;
LL get(int l, int r){
l += BASE; r+= BASE;
LL ret = 0;
while(l < r){
if(l & 1) ret += tree[l++];
if((r & 1) == 0) ret += tree[r--];
l /= 2; r /= 2;
}
if(l == r)
ret += tree[l];
return ret;
}
void update(int idx, LL v){
idx += BASE;
while(1 <= idx){
tree[idx] += v;
idx /= 2;
}
}
int main(){
scanf("%d%d", &n, &q);
for(int i = 1; i <= n; i++){
scanf("%lld", &inp[i]);
update(i, inp[i]);
}
for(int i = 0; i < q; i++){
int l, r, idx; LL v; scanf("%d%d%d%lld", &l, &r, &idx, &v);
printf("[%d, %d] idx == %d, v == %lld\n", l, r, idx, v);
// assert(1 <= l && l <= n);
// assert(1 <= r && r <= n);
printf("%d\n", get(l, r));
update(idx, v - inp[idx]);
inp[idx] = v;
}
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNhc3NlcnQ+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBCQVNFCQkxMzEwNzIKI2RlZmluZSBNQVhfTgkJMTAwMDA0CiNkZWZpbmUgTEwJCQlsb25nIGxvbmcKCkxMIHRyZWVbMiAqIEJBU0VdOwpMTCBpbnBbTUFYX05dOwoKaW50IG4sIHE7CgpMTCBnZXQoaW50IGwsIGludCByKXsKCWwgKz0gQkFTRTsgcis9IEJBU0U7CglMTCByZXQgPSAwOwoJCgl3aGlsZShsIDwgcil7CgkJaWYobCAmIDEpIHJldCArPSB0cmVlW2wrK107CgkJaWYoKHIgJiAxKSA9PSAwKSByZXQgKz0gdHJlZVtyLS1dOwoJCQoJCWwgLz0gMjsgciAvPSAyOwoJfQoJaWYobCA9PSByKQoJCXJldCArPSB0cmVlW2xdOwoJCQoJcmV0dXJuIHJldDsKfQoKdm9pZCB1cGRhdGUoaW50IGlkeCwgTEwgdil7CglpZHggKz0gQkFTRTsKCQoJd2hpbGUoMSA8PSBpZHgpewoJCXRyZWVbaWR4XSArPSB2OwoJCWlkeCAvPSAyOwoJfQp9CgppbnQgbWFpbigpewoJCglzY2FuZigiJWQlZCIsICZuLCAmcSk7CgkKCWZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKCQlzY2FuZigiJWxsZCIsICZpbnBbaV0pOwoJCXVwZGF0ZShpLCBpbnBbaV0pOwoJfQoJCglmb3IoaW50IGkgPSAwOyBpIDwgcTsgaSsrKXsKCQlpbnQgbCwgciwgaWR4OyBMTCB2OyBzY2FuZigiJWQlZCVkJWxsZCIsICZsLCAmciwgJmlkeCwgJnYpOwoJCXByaW50ZigiWyVkLCAlZF0gaWR4ID09ICVkLCB2ID09ICVsbGRcbiIsIGwsIHIsIGlkeCwgdik7CgkJLy8gYXNzZXJ0KDEgPD0gbCAmJiBsIDw9IG4pOwoJCS8vIGFzc2VydCgxIDw9IHIgJiYgciA8PSBuKTsKCQlwcmludGYoIiVkXG4iLCBnZXQobCwgcikpOwoJCXVwZGF0ZShpZHgsIHYgLSBpbnBbaWR4XSk7CgkJaW5wW2lkeF0gPSB2OwoJfQoJCglyZXR1cm4gMDsKfQ==