/**
    Problem: Given two sequences a and b, find two balance sequences of brackets (s, t) of the same length
        such that their cost is maximized.
    The cost is calculated as followed: with position i, cost += a[i] if s[i] == t[i]; cost += b[i] otherwise.
*/

#include <cstdio>
#include <algorithm>
#include <set>

using namespace std;

#define long long long

const int N = 2e5 + 2;

int n, q, a[N], b[N];
set<pair<int, int> > s[2];
long cost = 0, sum[2] = {0, 0};

void Solve()
{
    while (q--)
    {
        int p, x, y; long cur = 0;
        scanf("%d %d %d", &p, &x, &y); --p;
        if (p == 0 || p == n - 1) cost += x - a[p], a[p] = x;
        else
        {
            cost += x - a[p];
            int old_sign = b[p] - a[p] >= 0;
            int new_sign = y - x >= 0;
            sum[old_sign] -= b[p] - a[p];
            sum[new_sign] += y - x;
            s[old_sign].erase({b[p] - a[p], p});
            s[new_sign].insert({y - x, p});
            a[p] = x, b[p] = y;
        }
        if (s[1].size() & 1)
            cur = cost + max(sum[1] + (--s[0].end())->first, sum[1] - s[1].begin()->first);
        else cur = cost + sum[1];
        printf("%lld\n", cur);
    }
}

int main()
{
    scanf("%d %d", &n, &q);
    n *= 2;
    for (int i = 0; i < n; ++i) scanf("%d", &a[i]), cost += a[i];
    for (int i = 0; i < n; ++i)
    {
        scanf("%d", &b[i]);
        if (i != 0 && i != n - 1)
        {
            int x = b[i] - a[i];
            int sign = x >= 0;
            sum[sign] += x;
            s[sign].insert({x, i});
        }
    }
    Solve();
    return 0;
}
