#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cmath>
#include <map>
#include <queue>
#include <iomanip>
#include <set>
#define MOD 1000000007
typedef long long ll;
using namespace std;

int main(){
  int N,Q;
  cin>>N>>Q;
  vector<ll> a(2*N),b(2*N);
  for(int i=0;i<2*N;i++) cin>>a[i];
  for(int i=0;i<2*N;i++) cin>>b[i];

  multiset<ll> se;
  ll ans=a[0]+a[2*N-1];
  int odd=0;
  for(int i=1;i<2*N-1;i++){
      se.insert(abs(a[i]-b[i]));
      ans+=max(a[i],b[i]);
      if(a[i]<b[i]) odd^=1;
  }

  for(int i=0;i<Q;i++){
      int p,x,y;
      cin>>p>>x>>y;
      p--;
      ll res=ans;
      if(p==0||p==2*N-1){
          res=res-a[p]+x;
      }else{
          res-=max(a[p],b[p]);
          res+=max(x,y);
          if(a[p]<b[p]) odd^=1;
          if(x<y) odd^=1;
          se.erase(se.find(abs(a[p]-b[p])));
          se.insert(abs(x-y));
      }
      a[p]=x;
      b[p]=y;
      
      if(odd==1) cout<<res-*(se.begin())<<endl;
      else cout<<res<<endl;
      ans=res;
  }

  return 0;
}
