#include<cstdio>
#include<algorithm>
#define SZ 262144
using namespace std;
struct Tree {
	long long S, Mn, Mx;
	int C;
}IT[SZ+SZ];
void Ins(int a, int b) {
	a += SZ;
	IT[a].S = max(0, b);
	IT[a].Mn = -1e18, IT[a].Mx = 1e18;
	if (b >= 0) {
		IT[a].C = 1;
		IT[a].Mx = b;
	}
	else {
		IT[a].C = 0;
		IT[a].Mn = b;
	}
	while (a != 1) {
		a >>= 1;
		IT[a].Mx = min(IT[a * 2].Mx, IT[a * 2 + 1].Mx);
		IT[a].Mn = max(IT[a * 2].Mn, IT[a * 2 + 1].Mn);
		IT[a].S = IT[a * 2].S + IT[a * 2 + 1].S;
		IT[a].C = IT[a * 2].C + IT[a * 2 + 1].C;
	}
}
long long SA;
int n, A[201000], B[201000];
int main() {
	int i, Q, t, a, b;
	scanf("%d%d", &n,&Q);
	n *= 2;
	for (i = 1; i < SZ+SZ; i++) {
		IT[i].Mn = -1e18, IT[i].Mx = 1e18;
	}
	for (i = 1; i <= n; i++) {
		scanf("%d", &A[i]);
		SA += A[i];
	}
	for (i = 1; i <= n; i++) {
		scanf("%d", &B[i]);
		if(i!=1 && i!=n) Ins(i, B[i] - A[i]);
	}
	while (Q--) {
		scanf("%d%d%d", &t, &a, &b);
		SA = SA - A[t] + a;
		A[t] = a, B[t] = b;
		if(t!=1 && t!=n)Ins(t, B[t] - A[t]);
		long long r = 0;
		if (IT[1].C % 2 == 0) r = SA + IT[1].S;
		else {
			r = max(SA + IT[1].S - IT[1].Mx, SA + IT[1].S + IT[1].Mn);
		}
		printf("%lld\n", r);
	}
}