#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
if (!(cin >> t)) return 0;
while (t--) {
int n, q;
cin >> n >> q;
vector<ll> a(n+1), b(n+1);
for (int i = 1; i <= n; ++i) cin >> a[i];
for (int i = 1; i <= n; ++i) cin >> b[i];
vector<ll> S(n+1), P(n+1);
P[0] = 0;
for (int i = 1; i <= n; ++i) {
S[i] = max(0LL, a[i]);
P[i] = P[i-1] + S[i];
}
vector<ll> c(n+1);
for (int i = 1; i <= n; ++i) c[i] = b[i] - P[i];
int LOG = 1;
while ((1 << LOG) <= n) ++LOG;
vector<int> lg(n+1);
lg[1] = 0;
for (int i = 2; i <= n; ++i) lg[i] = lg[i>>1] + 1;
// sparse table st[k][i] = max on interval of length 2^k starting at i
vector<vector<ll>> st(LOG, vector<ll>(n+1, LLONG_MIN/4));
for (int i = 1; i <= n; ++i) st[0][i] = c[i];
for (int k = 1; k < LOG; ++k) {
int len = 1 << k;
int half = 1 << (k-1);
for (int i = 1; i + len - 1 <= n; ++i) {
st[k][i] = max(st[k-1][i], st[k-1][i + half]);
}
}
auto range_max = [&](int L, int R) -> ll {
int len = R - L + 1;
int k = lg[len];
return max(st[k][L], st[k][R - (1<<k) + 1]);
};
while (q--) {
ll k0; int l, r;
cin >> k0 >> l >> r;
ll Sseg = P[r] - P[l-1];
ll bestC = range_max(l, r);
ll Mseg = P[r] + bestC;
ll ans = max(k0 + Sseg, Mseg);
cout << ans << '\n';
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgaW50IHQ7CiAgICBpZiAoIShjaW4gPj4gdCkpIHJldHVybiAwOwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIGludCBuLCBxOwogICAgICAgIGNpbiA+PiBuID4+IHE7CiAgICAgICAgdmVjdG9yPGxsPiBhKG4rMSksIGIobisxKTsKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIGNpbiA+PiBhW2ldOwogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgY2luID4+IGJbaV07CgogICAgICAgIHZlY3RvcjxsbD4gUyhuKzEpLCBQKG4rMSk7CiAgICAgICAgUFswXSA9IDA7CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CiAgICAgICAgICAgIFNbaV0gPSBtYXgoMExMLCBhW2ldKTsKICAgICAgICAgICAgUFtpXSA9IFBbaS0xXSArIFNbaV07CiAgICAgICAgfQoKICAgICAgICB2ZWN0b3I8bGw+IGMobisxKTsKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIGNbaV0gPSBiW2ldIC0gUFtpXTsKCiAgICAgICAgaW50IExPRyA9IDE7CiAgICAgICAgd2hpbGUgKCgxIDw8IExPRykgPD0gbikgKytMT0c7CiAgICAgICAgdmVjdG9yPGludD4gbGcobisxKTsKICAgICAgICBsZ1sxXSA9IDA7CiAgICAgICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gbjsgKytpKSBsZ1tpXSA9IGxnW2k+PjFdICsgMTsKCiAgICAgICAgLy8gc3BhcnNlIHRhYmxlIHN0W2tdW2ldID0gbWF4IG9uIGludGVydmFsIG9mIGxlbmd0aCAyXmsgc3RhcnRpbmcgYXQgaQogICAgICAgIHZlY3Rvcjx2ZWN0b3I8bGw+PiBzdChMT0csIHZlY3RvcjxsbD4obisxLCBMTE9OR19NSU4vNCkpOwogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgc3RbMF1baV0gPSBjW2ldOwogICAgICAgIGZvciAoaW50IGsgPSAxOyBrIDwgTE9HOyArK2spIHsKICAgICAgICAgICAgaW50IGxlbiA9IDEgPDwgazsKICAgICAgICAgICAgaW50IGhhbGYgPSAxIDw8IChrLTEpOwogICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSArIGxlbiAtIDEgPD0gbjsgKytpKSB7CiAgICAgICAgICAgICAgICBzdFtrXVtpXSA9IG1heChzdFtrLTFdW2ldLCBzdFtrLTFdW2kgKyBoYWxmXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGF1dG8gcmFuZ2VfbWF4ID0gWyZdKGludCBMLCBpbnQgUikgLT4gbGwgewogICAgICAgICAgICBpbnQgbGVuID0gUiAtIEwgKyAxOwogICAgICAgICAgICBpbnQgayA9IGxnW2xlbl07CiAgICAgICAgICAgIHJldHVybiBtYXgoc3Rba11bTF0sIHN0W2tdW1IgLSAoMTw8aykgKyAxXSk7CiAgICAgICAgfTsKCiAgICAgICAgd2hpbGUgKHEtLSkgewogICAgICAgICAgICBsbCBrMDsgaW50IGwsIHI7CiAgICAgICAgICAgIGNpbiA+PiBrMCA+PiBsID4+IHI7CiAgICAgICAgICAgIGxsIFNzZWcgPSBQW3JdIC0gUFtsLTFdOwogICAgICAgICAgICBsbCBiZXN0QyA9IHJhbmdlX21heChsLCByKTsKICAgICAgICAgICAgbGwgTXNlZyA9IFBbcl0gKyBiZXN0QzsKICAgICAgICAgICAgbGwgYW5zID0gbWF4KGswICsgU3NlZywgTXNlZyk7CiAgICAgICAgICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0K