#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 200000 + 5;
ll A[N], B[N], C[N];
struct ST {
ll t[4*N];
void build(int n, int b, int e) {
if(b == e) {
t[n] = C[b];
return;
}
int m = (b + e) >> 1;
int l = (n << 1) + 1, r = (n << 1) + 2;
build(l, b, m);
build(r, m+1, e);
t[n] = t[l] + t[r];
}
void upd(int n, int b, int e, int i, ll x) {
if(b > i || e < i) return;
if(b == e) {
t[n] = x;
return;
}
int m = (b + e) >> 1;
int l = (n << 1) + 1, r = (n << 1) + 2;
upd(l, b, m, i, x);
upd(r, m+1, e, i, x);
t[n] = t[l] + t[r];
}
ll query(int n, int b, int e, int i, int j) {
if(b > j || e < i) return 0;
if(i <= b && e <= j) return t[n];
int m = (b + e) >> 1;
int l = (n << 1) + 1, r = (n << 1) + 2;
return query(l, b, m, i, j) + query(r, m+1, e, i, j);
}
};
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, q;
cin >> n >> q;
for(int i = 0; i < n; i++) cin >> A[i];
for(int i = 0; i < n; i++) cin >> B[i];
for(int i = 0; i < n; i++) C[i] = min(A[i], B[i]);
ST seg;
seg.build(0, 0, n-1);
while(q--) {
char c;
int l;
ll r;
cin >> c >> l >> r;
l--;
if(c == 'A') A[l] = r;
else B[l] = r;
C[l] = min(A[l], B[l]);
seg.upd(0, 0, n-1, l, C[l]);
cout << seg.query(0, 0, n-1, 0, n-1) << "\n";
}
return 0;
}