#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <cstring>
#include <set>
#define SIZE 200005

using namespace std;
typedef long long int ll;

ll A[SIZE],B[SIZE];
ll sum,all;
int cnt;
multiset <ll> st;
multiset <ll>::iterator it;
int n,q;

void ins(int k)
{
	if(k==0||k==n-1)
	{
		all+=A[k];
	}
	else
	{
		all+=A[k];
		if(A[k]<B[k])
		{
			cnt++;
			sum+=B[k]-A[k];
		}
		st.insert(B[k]-A[k]);
	}
}
void rem(int k)
{
	if(k==0||k==n-1)
	{
		all-=A[k];
	}
	else
	{
		all-=A[k];
		if(A[k]<B[k])
		{
			cnt--;
			sum-=B[k]-A[k];
		}
		it=st.lower_bound(B[k]-A[k]);
		st.erase(it);
	}
}
ll get_ans()
{
	if(cnt%2==0) return all+sum;
	else
	{
		it=st.upper_bound(0);
		ll mx=-(*it);
		it--;
		mx=max(mx,(*it));
		return all+sum+mx;
	}
}
int main()
{
	scanf("%d %d",&n,&q);
	n*=2;
	for(int i=0;i<n;i++) scanf("%lld",&A[i]);
	for(int i=0;i<n;i++) scanf("%lld",&B[i]);
	for(int i=0;i<n;i++) ins(i);
	for(int i=0;i<q;i++)
	{
		int p;
		ll x,y;
		scanf("%d %lld %lld",&p,&x,&y);p--;
		rem(p);
		A[p]=x,B[p]=y;
		ins(p);
		printf("%lld\n",get_ans());
	}
	return 0;
}
