#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, q;
  scanf("%d%d", &n, &q);
  assert(n <= 5 && q <= 10);
  n = 2 * n;
  vector<int> a(n), b(n);
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  for (int i = 0; i < n; i++) scanf("%d", &b[i]);
  set<string> ok;
  vector<int> s(n - 2);
  for (int i = 0; i < n - 2; i++) s[i] = i;
  do {
    string tmp = "";
    for (int i = 0; i < n - 2; i++) {
      if (s[i] & 1)
        tmp += ")";
      else
        tmp += "(";
    }
    stack<char> st;
    st.push('(');
    for (int i = 0; i < n - 2; i++) {
      if (!st.empty() && st.top() == '(' && tmp[i] == ')')
        st.pop();
      else
        st.push(tmp[i]);
    }
    if (st.top() == '(') st.pop();
    if (st.empty()) ok.insert("(" + tmp + ")");
  } while (next_permutation(s.begin(), s.end()));
  vector<string> yes;
  for (auto it : ok) yes.push_back(it);
  while (q--) {
    int p, x, y;
    scanf("%d%d%d", &p, &x, &y);
    p--;
    a[p] = x;
    b[p] = y;
    long long ans = -(1LL << 60);
    for (int i = 0; i < yes.size(); i++) {
      for (int j = i; j < yes.size(); j++) {
        string fi = yes[i], se = yes[j];
        long long res = 0;
        for (int i = 0; i < n; i++) {
          if (fi[i] == se[i])
            res += a[i];
          else
            res += b[i];
        }
        ans = max(ans, res);
      }
    }
    printf("%lld\n", ans);
  }
  return 0;
}
