#include <bits/stdc++.h>
using namespace std;
struct Tree {
  long long S, Mn, Mx;
  int C;
} IT[262144 + 262144];
void Ins(int a, int b) {
  a += 262144;
  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 < 262144 + 262144; 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 {
      if (IT[1].C) {
        r = max(r, SA + IT[1].S - IT[1].Mx);
      }
      if (IT[1].C != n) {
        r = max(r, SA + IT[1].S + IT[1].Mn);
      }
    }
    printf("%lld\n", r);
  }
}
