#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<cstdlib>
#define cmax(a,b) (a<(b)?a=(b),1:0)
#define cmin(a,b) (a>(b)?a=(b),1:0)
#define dmin(a,b) ((a)<(b)?(a):(b))
#define dmax(a,b) ((a)>(b)?(a):(b))
#define regsiter register
#define CL fclose(stdin),fclose(stdout)
namespace io
{
	int F()
	{
		int n=0,F=1;
		char ch;
		while((ch=getchar())!='-'&&(ch<'0'||ch>'9'));
		ch=='-'?F=0:n=ch-'0';
		while((ch=getchar())>='0'&&ch<='9')n=(n<<1)+(n<<3)+ch-'0';
		return F?n:-n;
	}
	long long G()
	{
		long long n=0,F=1;
		char ch;
		while((ch=getchar())!='-'&&(ch<'0'||ch>'9'));
		ch=='-'?F=0:n=ch-'0';
		while((ch=getchar())>='0'&&ch<='9')n=(n<<1)+(n<<3)+ch-'0';
		return F?n:-n;
	}
}
#include<set>
int a[211111];
int v[211111];
std::multiset<int> pos,neg;
long long sp;
int main()
{
	int n=io::F()<<1,Q=io::F();
	long long ans=0;
	for(register int i=1;i<=n;++i)ans+=a[i]=io::F();
	io::F();
	for(register int i=2;i<n;++i)v[i]=io::F()-a[i];
	io::F();
	for(register int i=2;i<n;++i)v[i]>=0?sp+=v[i],pos.insert(v[i]):neg.insert(v[i]);
	for(register int i=1;i<=Q;++i)
	{
		int p=io::F(),x=io::F(),y=io::F();
		ans-=a[p];
		ans+=a[p]=x;
		if(p==1||p==n)goto skip;
		v[p]>=0?sp-=v[p],pos.erase(pos.find(v[p])):neg.erase(neg.find(v[p]));
		v[p]=y-x;
		//for(std::multiset<int>::iterator it=pos.begin();it!=pos.end();++it)printf("%d\n",*it);
		v[p]>=0?sp+=v[p],pos.insert(v[p]):neg.insert(v[p]);
		skip:;
		if(pos.size()&1)
		{
			if(*pos.begin()>-*neg.rbegin())printf("%lld\n",ans+sp+*neg.rbegin());
				else printf("%lld\n",ans+sp-*pos.begin());
		}
		else printf("%lld\n",ans+sp);
	}
	return 0;
}


