#include #include #include #include using namespace std; using ll = long long; int main(){ int n,m; cin >> n >> m; vectora(m); vectorp(n); vectorl(n); vectorr(n); atcoder::fenwick_tree as(m+1),c(m+1); ll ansp=0,ansm=0; for(int i=0;i> a[i] >> l[i] >> r[i]; p[i]=i; l[i]--; c.add(l[i],1); c.add(r[i],-1); as.add(i,a[i]); ansp+=a[i]*(r[i]-l[i]); } for(int i=0;i> q; while(q--){ int x,y,u,v; cin >> x >> y >> u >> v; x--;y--; u--; ansp-=a[p[x]]*(r[x]-l[x]); ansm-=as.sum(l[x],r[x]); c.add(l[x],-1); c.add(r[x],1); ansm-=a[p[x]]*c.sum(0,p[x]+1); r[x]=v; l[x]=u; a[y]=a[p[x]]; as.add(y,a[p[x]]); as.add(p[x],-a[p[x]]); a[p[x]]=0; p[x]=y; ansp+=a[y]*(v-u); ansm+=a[y]*c.sum(0,y+1); c.add(u,1); c.add(v,-1); ansm+=as.sum(l[x],r[x]); cout << ansp-ansm << endl; } return 0; }