#include <bits/stdc++.h>
typedef long long ll;
#define FOR(i,a,b) for(ll i=(a);i<(b);i++)
#define REP(i,a) FOR(i,0,a)

using namespace std;
const ll MAX_N=1e5;
ll N,Q,A[MAX_N*2],B[MAX_N*2],c[MAX_N*2];

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>N>>Q;
	REP(i,N*2)cin>>A[i];
	REP(i,N*2)cin>>B[i];
	REP(i,N*2)c[i]=A[i]-B[i];
	ll bsm,mx;
	bsm=mx=0;
	multiset<ll> st[2];
	REP(i,N*2-2){
		int inx;
		if(c[i+1]>=0){
			inx=0;
			mx+=c[i+1];
		}else{
			inx=1;
		}
		st[inx].insert(c[i+1]);
	}
	REP(i,N*2)bsm+=B[i];
	REP(q,Q){
		ll p,x,y;
		cin>>p>>x>>y;
		p--;
		bsm-=B[p];
		int inx;
		multiset<ll>::iterator ite;
		if(0<p && p<N*2-1){
			if(c[p]>=0){
				inx=0;
				mx-=c[p];
			}else{
				inx=1;
			}
			ite=st[inx].find(c[p]);
			st[inx].erase(ite);
		}
		A[p]=x;
		B[p]=y;
		c[p]=x-y;
		bsm+=y;
		if(0<p && p<N*2-1){
			if(c[p]>=0){
				inx=0;
				mx+=c[p];
			}else{
				inx=1;
			}
			st[inx].insert(c[p]);
		}
		ll ans;
		if(st[0].size()%2==0){
			ans=mx;
		}else{
			ite=st[0].begin();
			ans=mx-*ite;
			ite=st[1].end();
			ite--;
			ans=max(ans,mx+*ite);
		}
		cout<<ans+bsm+c[0]+c[N*2-1]<<endl;
	}
}