#include #include #include #include namespace mp = boost::multiprecision; using Bint = mp::cpp_int; using namespace std; using namespace atcoder; #define rep(i, n) for(int i=0;i<(n);++i) #define rep1(i, n) for(int i=1;i<=(n);i++) #define ll long long using mint = modint998244353; using P = pair; using lb = long double; using T = tuple; #ifdef LOCAL # include # define dbg(...) debug_print::multi_print(#__VA_ARGS__, __VA_ARGS__) #else # define dbg(...) (static_cast(0)) #endif int main() { int n, m; cin >> n >> m; vector a(n), l(n), r(n); rep(i,n) cin >> a[i] >> l[i] >> r[i]; rep(i,n) { --l[i]; } vector id(n); rep(i,n) id[i] = i; fenwick_tree bit(m), cnt(m+2); rep(i,n) { bit.add(i, a[i]); } ll ans = 0; rep(i,n) { ans += a[i]*(r[i]-l[i])-bit.sum(l[i],r[i]); cnt.add(l[i], 1); cnt.add(r[i],-1); } dbg(ans); int q; cin >> q; while(q--) { int x, y, u, v; cin >> x >> y >> u >> v; --x; --y; --u; ans -= a[x]*(r[x]-l[x]) - bit.sum(l[x],r[x]); cnt.add(l[x],-1); cnt.add(r[x],1); ll c = cnt.sum(0, id[x]+1); dbg(c); ans += c*a[x]; bit.add(id[x], -a[x]); id[x] = y; l[x] = u; r[x] = v; bit.add(id[x], a[x]); c = cnt.sum(0, id[x]+1); ans -= c*a[x]; cnt.add(l[x],1); cnt.add(r[x],-1); ans += a[x]*(r[x]-l[x]) - bit.sum(l[x], r[x]); cout << ans << endl; } return 0; }