#include <bits/stdc++.h>
using namespace std;
template <typename A, typename B>
inline void chmin(A &a, B b) {
  if (a > b) a = b;
}
template <typename A, typename B>
inline void chmax(A &a, B b) {
  if (a < b) a = b;
}
long long N, Q;
long long A[111111], B[111111];
signed main() {
  scanf("%lld%lld", &N, &Q);
  N *= 2;
  for (long long i = 0; i < (N); i++) scanf("%lld", &A[i]);
  for (long long i = 0; i < (N); i++) scanf("%lld", &B[i]);
  multiset<long long> x, y;
  long long sumx = 0;
  long long base = accumulate(A, A + N, 0ll);
  for (long long i = 1; i + 1 < N; i++) {
    if (A[i] <= B[i]) {
      x.insert(B[i] - A[i]);
      sumx += B[i] - A[i];
    } else {
      y.insert(B[i] - A[i]);
    }
  }
  while (Q--) {
    long long p, a, b;
    scanf("%lld%lld%lld", &p, &a, &b);
    p--;
    base -= A[p];
    if (1 <= p && p + 1 < N) {
      if (A[p] <= B[p]) {
        sumx -= B[p] - A[p];
        auto it = x.find(B[p] - A[p]);
        x.erase(it);
      } else {
        auto it = y.find(B[p] - A[p]);
        y.erase(it);
      }
    }
    A[p] = a;
    B[p] = b;
    base += A[p];
    if (1 <= p && p + 1 < N) {
      if (A[p] <= B[p]) {
        x.insert(B[p] - A[p]);
        sumx += B[p] - A[p];
      } else {
        y.insert(B[p] - A[p]);
      }
    }
    long long ans = 0;
    if (x.size() % 2 == 0) {
      ans = sumx;
    } else {
      ans = sumx - *x.begin();
      chmax(ans, sumx + *y.rbegin());
    }
    printf("%lld\n", ans + base);
  }
  return 0;
}
