#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll >
#define vvi vector<vi >
#define pb push_back
const ll mod = 998244353;
const ll g = 3;
const int blk =9000;
int bit[2][800000+100];
const int N = 200005;
ll a[N];
ll pa[N],pb[N];
vector<ll> aa,b,b1;
vector<int> v;
int maxn, n,q,LG;
ll powr(ll a, ll b, ll mod)
{
ll x = 1;
a %= mod;
while(b)
{
if(b&1)
x = (x*a)%mod;
a = (a*a)%mod;
b >>= 1;
}
return x;
}
ll inv(ll a, ll mod)
{
return powr(a,mod-2,mod);
}
class NTT{
ll p,g,n,logn;
public:
NTT(ll P, ll G, ll LOGN)
{
p = P;
ll g1 = G;
logn = LOGN;
n = (1<<LOGN);
assert((p-1)%n == 0);
g = powr(g1,(p-1)>>logn,p);
}
int bitrevcopy(int i)
{
if(bit[LG==logn][i])return bit[LG==logn][i];
int ret = 0;
for(int j = 0;j<logn;j++)
{
if(i&(1<<j))
ret|=(1<<(logn-1-j));
}
return bit[LG==logn][i] = ret;
}
void fft(vll& a, bool invert)
{
ll mod = p;
for(int i = 0;i<n;i++)
{
int br = bitrevcopy(i);
if(i<br)
swap(a[i],a[br]);
}
for(int i = 1;i<=logn;i++)
{
ll mul = powr(g,1<<(logn-i),p);
if(invert)
mul = inv(mul,p);
int add = (1<<i);
for(int k = 0;k<n;k+=add)
{
ll w = 1;
ll lim = (add>>1);
for(int j = 0;j<lim;j++)
{
ll u = (w*a[k+j+lim])%p, v = a[k+j];
a[k+j] = u+v;
if(a[k+j]>=p)
a[k+j] -= p;
a[k+j+lim] = v-u;
if(a[k+j+lim]<0)
a[k+j+lim]+=p;
w = (w*mul)%p;
}
}
}
if(invert){
ll _inv = inv(n,p);
for(int i = 0;i<n;i++){
a[i] = (a[i]*_inv)%p;
}
}
}
};
void NTT_mul(vll& a)
{
int _sz = a.size()+n-1;
int LOGN = 0;
while((1<<LOGN) < _sz)
LOGN++;
ll N = (1<<LOGN);
a.resize(N);
NTT fft1 = NTT(mod,g,LOGN);
fft1.fft(a,false);
if(LG == LOGN)
{
for(int i = 0;i<N;i++)
a[i] = (a[i]*b[i])%mod;
}
else
{
for(int i = 0;i<N;i++)
a[i] = (a[i]*b1[i])%mod;
}
fft1.fft(a,true);
for(int i = 0;i<=n;i++)
a[i] %= mod;
}
void doit(){
while((1<<LG)<n)LG++;
b.resize(1<<LG);
b1.resize(1<<(LG+1));
NTT fft1 = NTT(mod,g,LG);
NTT fft2 = NTT(mod,g,LG+1);
fft1.fft(b,false);
fft2.fft(b1,false);
}
int main()
{
clock_t clk = clock();
//freopen ("t10.txt","r",stdin);
//freopen ("o10.txt","w",stdout);
scanf("%d %d",&n,&q);
for(int i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
pa[i] = (pa[i-1] + a[i]);
}
b.resize(n);
b1.resize(n);
for(int i=0;i<n;i++)
{
scanf("%lld",&b[i]);
b1[i]=b[i];
pb[i+1] = (pb[i] + b[i]);
}
doit();
for(int i=1;i<=q;i++)
{
int t,l,r;
scanf("%d %d",&t,&l);
if(t==1)
{
v.pb(l);
}
else
{
scanf("%d",&r);
ll ans = pa[r]-pa[l-1];
for(int j=0; j<v.size();j++)
{
int x =v[j];
if(x<=l)
ans = (ans + pb[r-x+1]-pb[l-x]);
else if(x<=r)
ans = (ans + pb[r-x+1]);
}
printf("%lld\n",ans);
}
if(v.size() == blk)
{
aa.clear();
aa.resize(n);
maxn =0;
for(int x: v)
{
maxn =max(maxn,x);
aa[x-1]++;
}
aa.resize(maxn);
NTT_mul(aa);
for(int i=0;i<n;i++)
{
a[i+1] = (a[i+1] + aa[i]);
pa[i+1] = (pa[i] + a[i+1]);
}
v.clear();
}
}
//cerr<<(float)(clock()-clk)/CLOCKS_PER_SEC<<endl;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHZsbCB2ZWN0b3I8bGwgPgojZGVmaW5lIHZ2aSB2ZWN0b3I8dmkgPgojZGVmaW5lIHBiIHB1c2hfYmFjawogCmNvbnN0IGxsIG1vZCA9IDk5ODI0NDM1MzsKY29uc3QgbGwgZyA9IDM7CmNvbnN0IGludCBibGsgPTkwMDA7CmludCBiaXRbMl1bODAwMDAwKzEwMF07CmNvbnN0IGludCBOID0gMjAwMDA1OwpsbCBhW05dOwpsbCBwYVtOXSxwYltOXTsKdmVjdG9yPGxsPiBhYSxiLGIxOwp2ZWN0b3I8aW50PiB2OwppbnQgbWF4biwgbixxLExHOwogCmxsIHBvd3IobGwgYSwgbGwgYiwgbGwgbW9kKQp7CiAgICBsbCB4ID0gMTsKICAgIGEgJT0gbW9kOwogICAgd2hpbGUoYikKICAgIHsKICAgICAgICBpZihiJjEpCiAgICAgICAgICAgIHggPSAoeCphKSVtb2Q7CiAgICAgICAgYSA9IChhKmEpJW1vZDsKICAgICAgICBiID4+PSAxOwogICAgfQogICAgcmV0dXJuIHg7Cn0KbGwgaW52KGxsIGEsIGxsIG1vZCkKewogICAgcmV0dXJuIHBvd3IoYSxtb2QtMixtb2QpOwp9CmNsYXNzIE5UVHsKIAogICAgbGwgcCxnLG4sbG9nbjsKcHVibGljOgogICAgTlRUKGxsIFAsIGxsIEcsIGxsIExPR04pICAgIAogICAgewogICAgICAgIHAgPSBQOwogICAgICAgIGxsIGcxID0gRzsKICAgICAgICBsb2duID0gTE9HTjsKICAgICAgICBuID0gKDE8PExPR04pOwogICAgICAgIGFzc2VydCgocC0xKSVuID09IDApOwogICAgICAgIGcgPSBwb3dyKGcxLChwLTEpPj5sb2duLHApOwogICAgfQogCiAgICBpbnQgYml0cmV2Y29weShpbnQgaSkKICAgIHsgICAKCiAgICAgICAgaWYoYml0W0xHPT1sb2duXVtpXSlyZXR1cm4gYml0W0xHPT1sb2duXVtpXTsKICAgICAgICAKICAgICAgICBpbnQgcmV0ID0gMDsKICAgICAgICBmb3IoaW50IGogPSAwO2o8bG9nbjtqKyspCiAgICAgICB7CiAgICAgICAgICAgIGlmKGkmKDE8PGopKQogICAgICAgICAgICAgICAgcmV0fD0oMTw8KGxvZ24tMS1qKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBiaXRbTEc9PWxvZ25dW2ldID0gcmV0OwogICAgfQogICAgdm9pZCBmZnQodmxsJiBhLCBib29sIGludmVydCkKICAgIHsgICAKICAgICAgICBsbCBtb2QgPSBwOwogICAgICAgIGZvcihpbnQgaSA9IDA7aTxuO2krKykKICAgICAgICB7CiAgICAgICAgICAgIAogICAgICAgICAgICBpbnQgYnIgPSBiaXRyZXZjb3B5KGkpOwogICAgICAgICAgICBpZihpPGJyKQogICAgICAgICAgICAgICAgc3dhcChhW2ldLGFbYnJdKTsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpID0gMTtpPD1sb2duO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGxsIG11bCA9IHBvd3IoZywxPDwobG9nbi1pKSxwKTsKICAgICAgICAgICAgaWYoaW52ZXJ0KQogICAgICAgICAgICAgICAgbXVsID0gaW52KG11bCxwKTsKICAgICAgICAgICAgaW50IGFkZCA9ICgxPDxpKTsKICAgICAgICAgICAgZm9yKGludCBrID0gMDtrPG47ays9YWRkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBsbCB3ID0gMTsKICAgICAgICAgICAgICAgIGxsIGxpbSA9IChhZGQ+PjEpOwogICAgICAgICAgICAgICAgZm9yKGludCBqID0gMDtqPGxpbTtqKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgbGwgdSA9ICh3KmFbaytqK2xpbV0pJXAsIHYgPSBhW2sral07CiAgICAgICAgICAgICAgICAgICAgYVtrK2pdID0gdSt2OwogICAgICAgICAgICAgICAgICAgIGlmKGFbaytqXT49cCkKICAgICAgICAgICAgICAgICAgICAgICAgYVtrK2pdIC09IHA7CiAgICAgICAgICAgICAgICAgICAgYVtrK2orbGltXSA9IHYtdTsKICAgICAgICAgICAgICAgICAgICBpZihhW2sraitsaW1dPDApCiAgICAgICAgICAgICAgICAgICAgICAgIGFbaytqK2xpbV0rPXA7CiAgICAgICAgICAgICAgICAgICAgdyA9ICh3Km11bCklcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZihpbnZlcnQpewogICAgICAgICAgICBsbCBfaW52ID0gaW52KG4scCk7CiAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7aTxuO2krKyl7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGFbaV0gPSAoYVtpXSpfaW52KSVwOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Owp2b2lkIE5UVF9tdWwodmxsJiBhKQp7CiAgICBpbnQgX3N6ID0gYS5zaXplKCkrbi0xOwoKICAgIGludCBMT0dOID0gMDsKICAgIHdoaWxlKCgxPDxMT0dOKSA8IF9zeikKICAgICAgICBMT0dOKys7CiAgICBsbCBOID0gKDE8PExPR04pOwogICAgYS5yZXNpemUoTik7CiAgICBOVFQgZmZ0MSA9IE5UVChtb2QsZyxMT0dOKTsKICAgIGZmdDEuZmZ0KGEsZmFsc2UpOwoKICAgIGlmKExHID09IExPR04pCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IGkgPSAwO2k8TjtpKyspCiAgICAgICAgICAgYVtpXSA9IChhW2ldKmJbaV0pJW1vZDsKICAgICAgICB9CiAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IGkgPSAwO2k8TjtpKyspCiAgICAgICAgICAgYVtpXSA9IChhW2ldKmIxW2ldKSVtb2Q7CiAgICAgICAgfQoKICAgIGZmdDEuZmZ0KGEsdHJ1ZSk7CgogICAgZm9yKGludCBpID0gMDtpPD1uO2krKykKICAgICAgICBhW2ldICU9IG1vZDsKfSAgIAoKdm9pZCBkb2l0KCl7CgogICAgd2hpbGUoKDE8PExHKTxuKUxHKys7CiAgICBiLnJlc2l6ZSgxPDxMRyk7CiAgICBiMS5yZXNpemUoMTw8KExHKzEpKTsKICAgIE5UVCBmZnQxID0gTlRUKG1vZCxnLExHKTsKICAgIE5UVCBmZnQyID0gTlRUKG1vZCxnLExHKzEpOwogICAgZmZ0MS5mZnQoYixmYWxzZSk7CiAgICBmZnQyLmZmdChiMSxmYWxzZSk7Cn0KIAppbnQgbWFpbigpCnsKICAgIGNsb2NrX3QgY2xrID0gY2xvY2soKTsKICAgIC8vZnJlb3BlbiAoInQxMC50eHQiLCJyIixzdGRpbik7CiAgICAvL2ZyZW9wZW4gKCJvMTAudHh0IiwidyIsc3Rkb3V0KTsKICAgIHNjYW5mKCIlZCAlZCIsJm4sJnEpOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICB7CiAgICAgICAgc2NhbmYoIiVsbGQiLCZhW2ldKTsKICAgICAgICBwYVtpXSA9IChwYVtpLTFdICsgYVtpXSk7CiAgICB9CiAgICBiLnJlc2l6ZShuKTsKICAgIGIxLnJlc2l6ZShuKTsKICAgCiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgewogICAgICAgIHNjYW5mKCIlbGxkIiwmYltpXSk7CiAgICAgICAgYjFbaV09YltpXTsKICAgICAgICBwYltpKzFdID0gKHBiW2ldICsgYltpXSk7CiAgICB9CiAgICBkb2l0KCk7CiAgICBmb3IoaW50IGk9MTtpPD1xO2krKykKICAgIHsKICAgICAgICBpbnQgdCxsLHI7CiAgICAgICAgc2NhbmYoIiVkICVkIiwmdCwmbCk7CiAgICAgICAgaWYodD09MSkKICAgICAgICB7CiAgICAgICAgICAgIHYucGIobCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHNjYW5mKCIlZCIsJnIpOwogICAgICAgICAgICBsbCBhbnMgPSBwYVtyXS1wYVtsLTFdOwogICAgICAgICAgICBmb3IoaW50IGo9MDsgajx2LnNpemUoKTtqKyspCiAgICAgICAgICAgIHsgICAKICAgICAgICAgICAgICAgIGludCB4ID12W2pdOwogICAgICAgICAgICAgICAgaWYoeDw9bCkKICAgICAgICAgICAgICAgICAgICBhbnMgPSAoYW5zICsgcGJbci14KzFdLXBiW2wteF0pOwogICAgICAgICAgICAgICAgZWxzZSBpZih4PD1yKQogICAgICAgICAgICAgICAgICAgIGFucyA9IChhbnMgKyBwYltyLXgrMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHByaW50ZigiJWxsZFxuIixhbnMpOwogICAgICAgIH0KICAgICAgICBpZih2LnNpemUoKSA9PSBibGspCiAgICAgICAgewogICAgICAgICAgICBhYS5jbGVhcigpOwogICAgICAgICAgICBhYS5yZXNpemUobik7CiAgICAgICAgICAgIG1heG4gPTA7CiAgICAgICAgICAgIGZvcihpbnQgeDogdikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbWF4biA9bWF4KG1heG4seCk7CiAgICAgICAgICAgICAgICBhYVt4LTFdKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYWEucmVzaXplKG1heG4pOwogICAgICAgICAgICBOVFRfbXVsKGFhKTsKICAgICAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBhW2krMV0gPSAoYVtpKzFdICsgYWFbaV0pOwogICAgICAgICAgICAgICAgcGFbaSsxXSA9IChwYVtpXSArIGFbaSsxXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdi5jbGVhcigpOwogICAgICAgIH0KICAgIH0KICAgIC8vY2Vycjw8KGZsb2F0KShjbG9jaygpLWNsaykvQ0xPQ0tTX1BFUl9TRUM8PGVuZGw7CiAgICByZXR1cm4gMDsKfQ==