#include <bits/stdc++.h>
using namespace std;
template <class T>
bool chmax(T &a, const T &b) {
  return (a < b) ? (a = b, 1) : 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  return (b < a) ? (a = b, 1) : 0;
}
using ll = long long;
using R = long double;
const R EPS = 1e-9L;
inline int sgn(const R &r) { return (r > EPS) - (r < -EPS); }
inline R sq(R x) { return sqrt(max(x, 0.0L)); }
const int dx[8] = {1, 0, -1, 0, 1, -1, -1, 1};
const int dy[8] = {0, 1, 0, -1, 1, 1, -1, -1};
const int limit = 200010;
ll a[limit], b[limit];
const ll inf = 1LL << 60;
multiset<ll> positive, negative;
ll a_total = 0LL, p_total = 0LL;
int n, q;
inline void add(int i) {
  a_total += a[i];
  if (i == 0 or i == 2 * n - 1) return;
  const ll val = b[i] - a[i];
  if (val >= 0) {
    positive.insert(val);
    p_total += val;
  } else {
    negative.insert(val);
  }
}
inline void del(int i) {
  a_total -= a[i];
  if (i == 0 or i == 2 * n - 1) return;
  const ll val = b[i] - a[i];
  if (val >= 0) {
    positive.erase(val);
    p_total -= val;
  } else {
    negative.erase(val);
  }
}
int main(void) {
  cin >> n >> q;
  for (int i = int(0); i < int(2 * n); ++i) cin >> a[i];
  for (int i = int(0); i < int(2 * n); ++i) cin >> b[i];
  for (int i = int(0); i < int(2 * n); ++i) a_total += a[i];
  for (int i = int(1); i < int(2 * n - 1); ++i) {
    const ll val = b[i] - a[i];
    if (val >= 0) {
      positive.insert(val);
      p_total += val;
    } else {
      negative.insert(val);
    }
  }
  for (int loop = int(0); loop < int(q); ++loop) {
    int p;
    ll x, y;
    cin >> p >> x >> y;
    del(p - 1);
    a[p - 1] = x, b[p - 1] = y;
    add(p - 1);
    ll ans = -inf;
    if (positive.size() % 2 == 0) {
      chmax(ans, a_total + p_total);
    } else {
      const ll mmax = *prev(end(negative));
      const ll pmin = *begin(positive);
      chmax(ans, a_total + p_total + mmax);
      chmax(ans, a_total + p_total - pmin);
    }
    cout << ans << endl;
  }
  return 0;
}
