#include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int N,Q; cin >> N >> Q; vector> Qs(10000); vector S(10000); int B = 300; auto insert = [&](int pos,long long x) -> void { int p = 0; for(int i=0; ; i++){ if(p+B <= pos){p += B; continue;} S.at(i) += x; stack st; while(p < pos) st.push(Qs.at(i).front()),Qs.at(i).pop_front(),p++; Qs.at(i).push_front(x); while(st.size()) Qs.at(i).push_front(st.top()),st.pop(); while(Qs.at(i).size() > B){ long long v = Qs.at(i).back(); Qs.at(i).pop_back(); S.at(i) -= v,S.at(i+1) += v; Qs.at(i+1).push_front(v),i++; } break; } }; auto rangeans = [&](int l,int r) -> long long { long long ret = 0,pos = 0; for(int i=0; pos r){ for(int k=l-pos; k r){ for(int k=0; k> a; insert(i,a); } while(Q--){ int i,x,l,r; cin >> i >> x >> l >> r,i--,l--; insert(i+1,x); cout << rangeans(l,r) << "\n"; } }