B=448 class LST: def __init__(self): self.st1=[0]*B*B self.st2=[0]*B self.st3=[0]*B return def update(self,l,r): r-=1 yl=l//B yr=r//B for y in [yl,yr]: for i in range(y*B,y*B+B): self.st1[i]+=self.st3[y] self.st3[y]=0 return def apply(self,l,r,x): if l==r: return self.update(l,r) r-=1 yl=l//B yr=r//B if yl==yr: for i in range(l,r+1): self.st1[i]+=x self.st2[yl]+=x else: for i in range(l,yl*B+B): self.st1[i]+=x self.st2[yl]+=x for i in range(yr*B,r+1): self.st1[i]+=x self.st2[yr]+=x for i in range(yl+1,yr): self.st2[i]+=x*B self.st3[i]+=x return def prod(self,l,r): if l==r: return 0 self.update(l,r) r-=1 yl=l//B yr=r//B a=0 if yl==yr: a+=sum(self.st1[l:r+1]) else: a+=sum(self.st1[l:yl*B+B]) a+=sum(self.st1[yr*B:r+1]) a+=sum(self.st2[yl+1:yr]) return a n,m=map(int,input().split()) a=[0]*n b=[0]*n l=[0]*n r=[0]*n for i in range(n): a[i],l[i],r[i]=map(int,input().split()) l[i]-=1 r[i]-=1 b[i]=i st1=LST() st2=LST() for x in range(n): st1.apply(b[x],b[x]+1,a[x]) st2.apply(l[x],r[x]+1,1) g=0 for x in range(n): g+=(r[x]-l[x]+1)*a[x]-st1.prod(l[x],r[x]+1) Q=int(input()) for _ in range(Q): x,y,nl,nr=map(int,input().split()) x-=1 y-=1 nl-=1 nr-=1 g-=(r[x]-l[x]+1)*a[x]-st1.prod(l[x],r[x]+1) g-=-(st2.prod(b[x],b[x]+1)-(l[x]<=b[x]<=r[x]))*a[x] st1.apply(b[x],b[x]+1,-a[x]) st2.apply(l[x],r[x]+1,-1) b[x]=y l[x],r[x]=nl,nr st1.apply(b[x],b[x]+1,a[x]) st2.apply(l[x],r[x]+1,1) g+=(r[x]-l[x]+1)*a[x]-st1.prod(l[x],r[x]+1) g+=-(st2.prod(b[x],b[x]+1)-(l[x]<=b[x]<=r[x]))*a[x] print(g)