#include <bits/stdc++.h>
using namespace std;
void _dbg(string) { cout << endl; }
template <class H, class... T>
void _dbg(string s, H h, T... t) {
  int l = s.find(',');
  cout << s.substr(0, l) << " = " << h << ", ";
  _dbg(s.substr(l + 1), t...);
}
template <class T, class U>
ostream &operator<<(ostream &o, const pair<T, U> &p) {
  o << "(" << p.first << "," << p.second << ")";
  return o;
}
template <class T>
ostream &operator<<(ostream &o, const vector<T> &v) {
  o << "[";
  for (T t : v) {
    o << t << ",";
  }
  o << "]";
  return o;
}
int main() {
  int n, q;
  cin >> n >> q;
  n *= 2;
  vector<int> a(n), b(n);
  for (int i = (int)(0); i < (int)(n); i++) cin >> a[i];
  for (int i = (int)(0); i < (int)(n); i++) cin >> b[i];
  vector<int> d(n);
  for (int i = (int)(0); i < (int)(n); i++) d[i] = b[i] - a[i];
  long acc = accumulate((a).begin(), (a).end(), 0L);
  long plus_sum = 0;
  multiset<int> plus, minus;
  for (int i = (int)(1); i < (int)(n - 1); i++) {
    if (d[i] >= 0)
      plus.insert(d[i]);
    else
      minus.insert(d[i]);
  }
  for (auto x : plus) plus_sum += x;
  for (int i = (int)(0); i < (int)(q); i++) {
    int p, x, y;
    cin >> p >> x >> y;
    p--;
    if (p == 0 || p == n - 1) {
      acc -= a[p];
      a[p] = x;
      b[p] = y;
      acc += a[p];
    } else {
      acc -= a[p];
      int old_d = b[p] - a[p];
      if (old_d >= 0) {
        plus.erase(plus.lower_bound(old_d));
        plus_sum -= old_d;
      } else
        minus.erase(minus.lower_bound(old_d));
      a[p] = x;
      b[p] = y;
      acc += a[p];
      int new_d = b[p] - a[p];
      if (new_d >= 0) {
        plus.insert(new_d);
        plus_sum += new_d;
      } else
        minus.insert(new_d);
    }
    if (plus.size() % 2 == 0)
      cout << acc + plus_sum << "\n";
    else {
      long c1 = acc + plus_sum - *plus.begin();
      long c2 = acc + plus_sum + *minus.begin();
      cout << max(c1, c2) << "\n";
    }
  }
  return 0;
}
