#include <bits/stdc++.h>
using namespace std;
priority_queue<pair<long, int>, vector<pair<long, int>>,
               greater<pair<long, int>>>
    que_pos;
priority_queue<pair<long, int>, vector<pair<long, int>>> que_neg;
int main() {
  long N, Q;
  long a[200000], b[200000];
  cin >> N >> Q;
  for (int i = 0; i < 2 * N; i++) {
    cin >> a[i];
  }
  for (int i = 0; i < 2 * N; i++) {
    cin >> b[i];
  }
  long sum_a = a[0] + a[2 * N - 1];
  long sum_b = 0;
  int cnt_pos = 0;
  for (int i = 1; i <= 2 * N - 2; i++) {
    if (a[i] < b[i]) {
      cnt_pos++;
      que_pos.push(pair<long, int>(b[i] - a[i], i));
      sum_b += b[i];
    } else {
      que_neg.push(pair<long, int>(b[i] - a[i], i));
      sum_a += a[i];
    }
  }
  for (int i = 0; i < Q; i++) {
    int p, x, y;
    cin >> p >> x >> y;
    p--;
    if (p != 0 && p != 2 * N - 1) {
      if (b[p] > a[p]) {
        cnt_pos--;
        sum_b -= b[p];
      } else {
        sum_a -= a[p];
      }
    }
    a[p] = x;
    b[p] = y;
    if (b[p] > a[p]) {
      cnt_pos++;
      sum_b += b[p];
      que_pos.push(pair<long, int>(b[p] - a[p], p));
    } else {
      sum_a += a[p];
      que_neg.push(pair<long, int>(b[p] - a[p], p));
    }
    if (cnt_pos % 2 == 0) {
      cout << sum_a + sum_b << endl;
    } else {
      while (!que_pos.empty()) {
        pair<long, int> top = que_pos.top();
        int idx = top.second;
        if (top.first != (b[idx] - a[idx]))
          que_pos.pop();
        else
          break;
      }
      while (!que_neg.empty()) {
        pair<long, int> top = que_neg.top();
        int idx = top.second;
        if (top.first != (b[idx] - a[idx]))
          que_neg.pop();
        else
          break;
      }
      if (que_neg.empty()) cout << "neg empty\n";
      if (que_pos.empty()) cout << "pos empty\n";
      if (que_neg.top().first + que_pos.top().first >= 0) {
        cout << sum_a + sum_b + que_neg.top().first << endl;
      } else {
        cout << sum_a + sum_b - que_pos.top().first << endl;
      }
    }
  }
}
