#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline void upmin(T &x, T y) {
  y < x ? x = y : 0;
}
template <typename T>
inline void upmax(T &x, T y) {
  x < y ? x = y : 0;
}
const long double pi = acos(-1);
const int oo = 1 << 30;
const long long OO = 1e18;
const int N = 1e6;
int gi() {
  int w = 0;
  bool q = 1;
  char c = getchar();
  while ((c < '0' || c > '9') && c != '-') c = getchar();
  if (c == '-') q = 0, c = getchar();
  while (c >= '0' && c <= '9') w = w * 10 + c - '0', c = getchar();
  return q ? w : -w;
}
long long a[N], b[N];
long long f[N], g[N];
inline void modify(int i, int l, int r, int k) {
  if (l == r)
    f[i] = a[l], g[i] = b[l];
  else {
    int mid = (l + r) >> 1;
    k <= mid ? modify((i << 1), l, mid, k)
             : modify(((i << 1) | 1), mid + 1, r, k);
    f[i] =
        max(f[(i << 1)] + f[((i << 1) | 1)], g[(i << 1)] + g[((i << 1) | 1)]);
    g[i] =
        max(f[(i << 1)] + g[((i << 1) | 1)], g[(i << 1)] + f[((i << 1) | 1)]);
  }
}
int main() {
  int n = gi() * 2, m = gi(), i, k;
  for (i = 1; i <= n; i++) a[i] = gi();
  for (i = 1; i <= n; i++) b[i] = gi();
  b[1] = b[n] = -OO;
  for (i = 1; i <= n; i++) modify(1, 1, n, i);
  while (m--) {
    k = gi(), a[k] = gi();
    if (1 < k && k < n) b[k] = gi();
    modify(1, 1, n, k);
    printf("%lld\n", f[1]);
  }
  return 0;
}
