#include <iostream>
#include <string.h>
#include <vector>
#include <set>
using namespace std;
struct E{
long long int num,no;
bool commit;
};
struct E2{
int l,r,x,y,z;
};
const int maxS=600000;
int R=262143;
int no0=0;
vector<E2> copyData;
vector<long long int> areaSum;
E segA[maxS];
long long int fSegASet(int no,int p1,int l2,int r2,long long int num){
if(r2<p1 || p1<l2)return segA[no].num;
if(l2==r2){
segA[no].num=num;
return segA[no].num;
}
int m=(l2+r2)/2;
long long int res=fSegASet(no*2+1,p1,l2,m,num);
res+=fSegASet(no*2+2,p1,m+1,r2,num);
segA[no].num=res;
return res;
}
long long int calc(int no,int no2,int no3,int l,int r,int l2,int r2,bool commit){
//cout<<"<"<<commit<<" "<<no<<",no2="<<no2<<",no3="<<no3<<",l="<<l<<",r="<<r<<","<<l2<<","<<r2<<",>";
if(no2==-1 && no3==-1){
//cout<<1<<" "<<segA[no].num<<endl;
return segA[no].num;
}else{
E2 e2;
if(no2!=-1 && e2.x<=l2 && r2<=e2.x+e2.z){
e2=copyData[no2];
int l3=e2.y+(l2-e2.x);
int r3=l3+(r2-l2)+1;
long long int t=areaSum[r3]-areaSum[l3];
return t;
}
e2=copyData[no3];
//cout<<3<<e2.x<<" "<<e2.z<<endl;
return areaSum[e2.x+e2.z]-areaSum[e2.x];
}
}
long long int fSegACalcAns(int no,int l,int r,int l2,int r2,int no2,bool commit){
commit=commit && segA[no].commit;
no2=(no2<segA[no].no)?segA[no].no:no2;
long long int res=calc(no,no2,no2,l,r,l2,r2,commit);
if(r2<l || r<l2){
return 0;
}
if(l<=l2 && r2<=r){
return res;
}else{
int m=(l2+r2)/2;
res=fSegACalcAns(no*2+1,l,r,l2,m,no2,commit);
res+=fSegACalcAns(no*2+2,l,r,m+1,r2,no2,commit);
return res;
}
}
long long int fSegAUpData(int no,int l,int r,int l2,int r2,int no2,int no3,bool commit){
commit=commit && segA[no].commit;
no3=(no3<segA[no].no)?segA[no].no:no3;
long long int res=calc(no,no3,no3,l,r,l2,r2,commit);
if(r2<l || r<l2){
return res;
}
res=calc(no,no2,no2,l,r,l2,r2,false);
if(l2==r2){
segA[no].no=no2;
segA[no].num=res;
return res;
}
if(l<=l2 && r2<=r){
segA[no].no=no2;
segA[no].num=res;
segA[no].commit=true;
segA[no*2+1].commit=false;
segA[no*2+2].commit=false;
return res;
}else{
int m=(l2+r2)/2;
res=fSegAUpData(no*2+1,l,r,l2,m,no2,no3,commit);
res+=fSegAUpData(no*2+2,l,r,m+1,r2,no2,no3,commit);
segA[no].num=res;
segA[no].commit=true;
return res;
}
}
int main() {
for(int i=0;i<maxS;i++){
segA[i].num=0;
segA[i].no=-1;
segA[i].commit=true;
}
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
long long int num;
cin>>num;
fSegASet(0,i,0,R,num);
}
areaSum.push_back(0);
long long int sum=0;
for(int i=0;i<n;i++){
long long int num;
cin>>num;
sum+=num;
areaSum.push_back(sum);
}
for(int i=0;i<maxS;i++){
areaSum.push_back(sum);
}
for(int i=0;i<m;i++){
int c1,l,r,x,y,z;
cin>>c1;
if(c1==0){
cin>>x>>y>>z;
E2 e2;
e2.l=y-1;
e2.r=y-2+z;
e2.x=x-1;
e2.y=y-1;
e2.z=z;
l=x-1;
r=x-2+z;
copyData.push_back(e2);
fSegAUpData(0,l,r,0,R,no0,-1,true);
no0++;
}else{
cin>>l>>r;
l--;
r--;
long long int t=fSegACalcAns(0,l,r,0,R,-1,true);
cout<<t<<endl;
}
//for(int i=0;i<maxS;i++){
//cout<<"("<<i<<","<<segA[i].num<<")";
//}
//cout<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxzZXQ+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgRXsKCWxvbmcgbG9uZyBpbnQgbnVtLG5vOwoJYm9vbCBjb21taXQ7Cn07CnN0cnVjdCBFMnsKCWludCBsLHIseCx5LHo7Cn07CmNvbnN0IGludCBtYXhTPTYwMDAwMDsKaW50IFI9MjYyMTQzOwppbnQgbm8wPTA7CnZlY3RvcjxFMj4gY29weURhdGE7CnZlY3Rvcjxsb25nIGxvbmcgaW50PiBhcmVhU3VtOwpFIHNlZ0FbbWF4U107Cgpsb25nIGxvbmcgaW50IGZTZWdBU2V0KGludCBubyxpbnQgcDEsaW50IGwyLGludCByMixsb25nIGxvbmcgaW50IG51bSl7CglpZihyMjxwMSB8fCBwMTxsMilyZXR1cm4gc2VnQVtub10ubnVtOwoJaWYobDI9PXIyKXsKCQlzZWdBW25vXS5udW09bnVtOwoJCXJldHVybiBzZWdBW25vXS5udW07Cgl9CglpbnQgbT0obDIrcjIpLzI7Cglsb25nIGxvbmcgaW50IHJlcz1mU2VnQVNldChubyoyKzEscDEsbDIsbSxudW0pOwoJcmVzKz1mU2VnQVNldChubyoyKzIscDEsbSsxLHIyLG51bSk7CglzZWdBW25vXS5udW09cmVzOwoJcmV0dXJuIHJlczsKfQoKbG9uZyBsb25nIGludCBjYWxjKGludCBubyxpbnQgbm8yLGludCBubzMsaW50IGwsaW50IHIsaW50IGwyLGludCByMixib29sIGNvbW1pdCl7CgkvL2NvdXQ8PCI8Ijw8Y29tbWl0PDwiICI8PG5vPDwiLG5vMj0iPDxubzI8PCIsbm8zPSI8PG5vMzw8IixsPSI8PGw8PCIscj0iPDxyPDwiLCI8PGwyPDwiLCI8PHIyPDwiLD4iOwoJCglpZihubzI9PS0xICYmIG5vMz09LTEpewoJCS8vY291dDw8MTw8IiAiPDxzZWdBW25vXS5udW08PGVuZGw7CgkJCgkJcmV0dXJuIHNlZ0Fbbm9dLm51bTsKCX1lbHNlewoJCUUyIGUyOwoJCWlmKG5vMiE9LTEgJiYgZTIueDw9bDIgJiYgcjI8PWUyLngrZTIueil7CgkJCWUyPWNvcHlEYXRhW25vMl07CgkJCWludCBsMz1lMi55KyhsMi1lMi54KTsKCQkJaW50IHIzPWwzKyhyMi1sMikrMTsKCQkJbG9uZyBsb25nIGludCB0PWFyZWFTdW1bcjNdLWFyZWFTdW1bbDNdOwoJCQlyZXR1cm4gdDsKCQkJCgkJfQoJCWUyPWNvcHlEYXRhW25vM107CgkJLy9jb3V0PDwzPDxlMi54PDwiICI8PGUyLno8PGVuZGw7CgkJcmV0dXJuIGFyZWFTdW1bZTIueCtlMi56XS1hcmVhU3VtW2UyLnhdOwoJfQp9CgoKbG9uZyBsb25nIGludCBmU2VnQUNhbGNBbnMoaW50IG5vLGludCBsLGludCByLGludCBsMixpbnQgcjIsaW50IG5vMixib29sIGNvbW1pdCl7Cgljb21taXQ9Y29tbWl0ICYmIHNlZ0Fbbm9dLmNvbW1pdDsKCW5vMj0obm8yPHNlZ0Fbbm9dLm5vKT9zZWdBW25vXS5ubzpubzI7Cglsb25nIGxvbmcgaW50IHJlcz1jYWxjKG5vLG5vMixubzIsbCxyLGwyLHIyLGNvbW1pdCk7CglpZihyMjxsIHx8IHI8bDIpewoJCXJldHVybiAwOwoJfQoKCWlmKGw8PWwyICYmIHIyPD1yKXsKCQlyZXR1cm4gcmVzOwoJfWVsc2V7CgkJaW50IG09KGwyK3IyKS8yOwoJCXJlcz1mU2VnQUNhbGNBbnMobm8qMisxLGwscixsMixtLG5vMixjb21taXQpOwoJCXJlcys9ZlNlZ0FDYWxjQW5zKG5vKjIrMixsLHIsbSsxLHIyLG5vMixjb21taXQpOwoJCXJldHVybiByZXM7Cgl9Cn0KCmxvbmcgbG9uZyBpbnQgZlNlZ0FVcERhdGEoaW50IG5vLGludCBsLGludCByLGludCBsMixpbnQgcjIsaW50IG5vMixpbnQgbm8zLGJvb2wgY29tbWl0KXsKCWNvbW1pdD1jb21taXQgJiYgc2VnQVtub10uY29tbWl0OwoJbm8zPShubzM8c2VnQVtub10ubm8pP3NlZ0Fbbm9dLm5vOm5vMzsKCQoJbG9uZyBsb25nIGludCByZXM9Y2FsYyhubyxubzMsbm8zLGwscixsMixyMixjb21taXQpOwoJCglpZihyMjxsIHx8IHI8bDIpewoJCXJldHVybiByZXM7Cgl9CglyZXM9Y2FsYyhubyxubzIsbm8yLGwscixsMixyMixmYWxzZSk7CglpZihsMj09cjIpewoJCXNlZ0Fbbm9dLm5vPW5vMjsKCQlzZWdBW25vXS5udW09cmVzOwoJCXJldHVybiByZXM7Cgl9CglpZihsPD1sMiAmJiByMjw9cil7CgkJc2VnQVtub10ubm89bm8yOwoJCXNlZ0Fbbm9dLm51bT1yZXM7CgkJc2VnQVtub10uY29tbWl0PXRydWU7CgkJc2VnQVtubyoyKzFdLmNvbW1pdD1mYWxzZTsKCQlzZWdBW25vKjIrMl0uY29tbWl0PWZhbHNlOwoJCXJldHVybiByZXM7Cgl9ZWxzZXsKCQlpbnQgbT0obDIrcjIpLzI7CgkJcmVzPWZTZWdBVXBEYXRhKG5vKjIrMSxsLHIsbDIsbSxubzIsbm8zLGNvbW1pdCk7CgkJcmVzKz1mU2VnQVVwRGF0YShubyoyKzIsbCxyLG0rMSxyMixubzIsbm8zLGNvbW1pdCk7CgkJc2VnQVtub10ubnVtPXJlczsKCQlzZWdBW25vXS5jb21taXQ9dHJ1ZTsKCQlyZXR1cm4gcmVzOwoJfQp9CgppbnQgbWFpbigpIHsKCWZvcihpbnQgaT0wO2k8bWF4UztpKyspewoJCXNlZ0FbaV0ubnVtPTA7CgkJc2VnQVtpXS5ubz0tMTsKCQlzZWdBW2ldLmNvbW1pdD10cnVlOwoJfQoJaW50IG4sbTsKCWNpbj4+bj4+bTsKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWxvbmcgbG9uZyBpbnQgbnVtOwoJCWNpbj4+bnVtOwoJCWZTZWdBU2V0KDAsaSwwLFIsbnVtKTsKCX0KCWFyZWFTdW0ucHVzaF9iYWNrKDApOwoJbG9uZyBsb25nIGludCBzdW09MDsKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWxvbmcgbG9uZyBpbnQgbnVtOwoJCWNpbj4+bnVtOwoJCXN1bSs9bnVtOwoJCWFyZWFTdW0ucHVzaF9iYWNrKHN1bSk7Cgl9Cglmb3IoaW50IGk9MDtpPG1heFM7aSsrKXsKCQlhcmVhU3VtLnB1c2hfYmFjayhzdW0pOwoJfQoJCglmb3IoaW50IGk9MDtpPG07aSsrKXsKCQlpbnQgYzEsbCxyLHgseSx6OwoJCWNpbj4+YzE7CgkJaWYoYzE9PTApewoJCQljaW4+Png+Pnk+Pno7CgkJCUUyIGUyOwoJCQllMi5sPXktMTsKCQkJZTIucj15LTIrejsKCQkJZTIueD14LTE7CgkJCWUyLnk9eS0xOwoJCQllMi56PXo7CgkJCWw9eC0xOwoJCQlyPXgtMit6OwoJCQljb3B5RGF0YS5wdXNoX2JhY2soZTIpOwoJCQlmU2VnQVVwRGF0YSgwLGwsciwwLFIsbm8wLC0xLHRydWUpOwoJCQlubzArKzsKCQl9ZWxzZXsKCQkJY2luPj5sPj5yOwoJCQlsLS07CgkJCXItLTsKCQkJbG9uZyBsb25nIGludCB0PWZTZWdBQ2FsY0FucygwLGwsciwwLFIsLTEsdHJ1ZSk7CgkJCWNvdXQ8PHQ8PGVuZGw7CgkJfQoJCS8vZm9yKGludCBpPTA7aTxtYXhTO2krKyl7CgkJCS8vY291dDw8IigiPDxpPDwiLCI8PHNlZ0FbaV0ubnVtPDwiKSI7CgkJLy99CgkvL2NvdXQ8PGVuZGw7Cgl9CglyZXR1cm4gMDsKfQ==