#include using namespace std; #define FAST ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); #define endl "\n" #define int long long int struct item{ int sum,pre,suf,max_sum; }; struct segment{ int size=1; vectorsum,pre,suf,ope,max_sum; void print() { for(int i=0;i<2*size;i++) { cout<=rx ||r<=lx) { return ; } int mid=l+(r-l)/2; modify(2*node+1,l,mid,lx,rx,value); modify(2*node+2,mid,r,lx,rx,value); sum[node]=operation(sum[2*node+1],ope[2*node+1],l,mid)+operation(sum[2*node+2],ope[2*node+2],mid,r); pre[node]=max(operation2(pre[2*node+1],ope[2*node+1],l,mid),operation(sum[2*node+1],ope[2*node+1],l,mid)+operation2(pre[2*node+2],ope[2*node+2],mid,r)); suf[node]=max(operation2(suf[2*node+2],ope[2*node+2],mid,r),operation(sum[2*node+2],ope[2*node+2],mid,r)+operation2(suf[2*node+1],ope[2*node+1],l,mid)); max_sum[node]=max(max(operation2(max_sum[2*node+1],ope[2*node+1],l,mid),operation2(max_sum[2*node+2],ope[2*node+2],mid,r)),operation2(pre[2*node+2],ope[2*node+2],mid,r)+operation2(suf[2*node+1],ope[2*node+1],l,mid)); return ; } void modify(int lx,int rx,int value) { return modify(0,0,size,lx,rx,value); } }; int32_t main() { int n,m; cin>>n>>m; segment sg; sg.init(n); for(int i=0;i>l>>r>>value; sg.modify(l,r,value); cout<