#include <bits/stdc++.h>
using namespace std;
long long n, Q;
long long a[200005], b[200005];
multiset<long long> posS, negS;
long long psum;
long long del(multiset<long long> &S, long long x) {
  auto it = S.lower_bound(x);
  if (it == S.end() || *it != x) return 0;
  S.erase(it);
  return x;
}
long long calc() {
  if (posS.size() % 2 == 0) return psum;
  long long ret = psum - *posS.begin();
  ret = max(ret, psum + *negS.rbegin());
  return ret;
}
int main(void) {
  cin >> n >> Q;
  for (int i = 1; i <= 2 * n; i++) cin >> a[i];
  for (int i = 1; i <= 2 * n; i++) cin >> b[i];
  long long ans = 0;
  for (int i = 1; i <= 2 * n; i++) {
    ans += a[i];
    if (i > 1 && i < 2 * n) {
      if (b[i] - a[i] >= 0)
        posS.insert(b[i] - a[i]), psum += b[i] - a[i];
      else
        negS.insert(b[i] - a[i]);
    }
  }
  long long p, x, y;
  for (int q = 1; q <= Q; q++) {
    cin >> p >> x >> y;
    ans -= a[p];
    if (p > 1 && p < 2 * n) {
      psum -= del(posS, b[p] - a[p]);
      del(negS, b[p] - a[p]);
    }
    a[p] = x, b[p] = y;
    ans += a[p];
    if (b[p] - a[p] >= 0)
      posS.insert(b[p] - a[p]), psum += b[p] - a[p];
    else
      negS.insert(b[p] - a[p]);
    cout << ans + calc() << endl;
  }
  return 0;
}
