#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 no2=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(commit==true){
//cout<<1<<" "<<segA[no].num<<endl;
return segA[no].num;
}else{
E2 e2=copyData[no2];
if(e2.x<=l2 && r2<=e2.x+e2.z){
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(l2==r2){
return res;
}
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,no2,no3,l,r,l2,r2,commit);
if(r2<l || r<l2)return res;
res=calc(no,no2,no3,l,r,l2,r2,false);
segA[no].commit=true;
if(l2==r2){
segA[no].no=no2;
segA[no].num=res;
segA[no].commit=true;
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,no2,-1,true);
no2++;
}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+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgRXsKCWxvbmcgbG9uZyBpbnQgbnVtLG5vOwoJYm9vbCBjb21taXQ7Cn07CnN0cnVjdCBFMnsKCWludCBsLHIseCx5LHo7Cn07CmNvbnN0IGludCBtYXhTPTYwMDAwMDsKaW50IFI9MjYyMTQzOwppbnQgbm8yPTA7CnZlY3RvcjxFMj4gY29weURhdGE7CnZlY3Rvcjxsb25nIGxvbmcgaW50PiBhcmVhU3VtOwpFIHNlZ0FbbWF4U107Cgpsb25nIGxvbmcgaW50IGZTZWdBU2V0KGludCBubyxpbnQgcDEsaW50IGwyLGludCByMixsb25nIGxvbmcgaW50IG51bSl7CglpZihyMjxwMSB8fCBwMTxsMilyZXR1cm4gc2VnQVtub10ubnVtOwoJaWYobDI9PXIyKXsKCQlzZWdBW25vXS5udW09bnVtOwoJCXJldHVybiBzZWdBW25vXS5udW07Cgl9CglpbnQgbT0obDIrcjIpLzI7Cglsb25nIGxvbmcgaW50IHJlcz1mU2VnQVNldChubyoyKzEscDEsbDIsbSxudW0pOwoJcmVzKz1mU2VnQVNldChubyoyKzIscDEsbSsxLHIyLG51bSk7CglzZWdBW25vXS5udW09cmVzOwoJcmV0dXJuIHJlczsKfQoKbG9uZyBsb25nIGludCBjYWxjKGludCBubyxpbnQgbm8yLGludCBubzMsaW50IGwsaW50IHIsaW50IGwyLGludCByMixib29sIGNvbW1pdCl7CgkvL2NvdXQ8PCI8Ijw8Y29tbWl0PDwiICI8PG5vPDwiLG5vMj0iPDxubzI8PCIsbm8zPSI8PG5vMzw8IixsPSI8PGw8PCIscj0iPDxyPDwiLCI8PGwyPDwiLCI8PHIyPDwiLD4iOwoJCglpZihjb21taXQ9PXRydWUpewoJCS8vY291dDw8MTw8IiAiPDxzZWdBW25vXS5udW08PGVuZGw7CgkJCgkJcmV0dXJuIHNlZ0Fbbm9dLm51bTsKCX1lbHNlewoJCUUyIGUyPWNvcHlEYXRhW25vMl07CgkJaWYoZTIueDw9bDIgJiYgcjI8PWUyLngrZTIueil7CgkJCWludCBsMz1lMi55KyhsMi1lMi54KTsKCQkJaW50IHIzPWwzKyhyMi1sMikrMTsKCQkJbG9uZyBsb25nIGludCB0PWFyZWFTdW1bcjNdLWFyZWFTdW1bbDNdOwoJCQlyZXR1cm4gdDsKCQl9CgkJZTI9Y29weURhdGFbbm8zXTsKCQkvL2NvdXQ8PDM8PGUyLng8PCIgIjw8ZTIuejw8ZW5kbDsKCQlyZXR1cm4gYXJlYVN1bVtlMi54K2UyLnpdLWFyZWFTdW1bZTIueF07Cgl9Cn0KCgpsb25nIGxvbmcgaW50IGZTZWdBQ2FsY0FucyhpbnQgbm8saW50IGwsaW50IHIsaW50IGwyLGludCByMixpbnQgbm8yLGJvb2wgY29tbWl0KXsKCWNvbW1pdD1jb21taXQgJiYgc2VnQVtub10uY29tbWl0OwoJbm8yPShubzI8c2VnQVtub10ubm8pP3NlZ0Fbbm9dLm5vOm5vMjsKCWxvbmcgbG9uZyBpbnQgcmVzPWNhbGMobm8sbm8yLG5vMixsLHIsbDIscjIsY29tbWl0KTsKCWlmKHIyPGwgfHwgcjxsMilyZXR1cm4gMDsKCglpZihsMj09cjIpewoKCQlyZXR1cm4gcmVzOwoJfQoJaWYobDw9bDIgJiYgcjI8PXIpewoJCXJldHVybiByZXM7Cgl9ZWxzZXsKCQlpbnQgbT0obDIrcjIpLzI7CgkJcmVzPWZTZWdBQ2FsY0FucyhubyoyKzEsbCxyLGwyLG0sbm8yLGNvbW1pdCk7CgkJcmVzKz1mU2VnQUNhbGNBbnMobm8qMisyLGwscixtKzEscjIsbm8yLGNvbW1pdCk7CgkJcmV0dXJuIHJlczsKCX0KfQoKbG9uZyBsb25nIGludCBmU2VnQVVwRGF0YShpbnQgbm8saW50IGwsaW50IHIsaW50IGwyLGludCByMixpbnQgbm8yLGludCBubzMsYm9vbCBjb21taXQpewoJY29tbWl0PWNvbW1pdCAmJiBzZWdBW25vXS5jb21taXQ7CglubzM9KG5vMzxzZWdBW25vXS5ubyk/c2VnQVtub10ubm86bm8zOwoJbG9uZyBsb25nIGludCByZXM9Y2FsYyhubyxubzIsbm8zLGwscixsMixyMixjb21taXQpOwoJaWYocjI8bCB8fCByPGwyKXJldHVybiByZXM7CglyZXM9Y2FsYyhubyxubzIsbm8zLGwscixsMixyMixmYWxzZSk7CglzZWdBW25vXS5jb21taXQ9dHJ1ZTsKCWlmKGwyPT1yMil7CgoJCXNlZ0Fbbm9dLm5vPW5vMjsKCQlzZWdBW25vXS5udW09cmVzOwoJCXNlZ0Fbbm9dLmNvbW1pdD10cnVlOwoJCXJldHVybiByZXM7Cgl9CglpZihsPD1sMiAmJiByMjw9cil7CgkJc2VnQVtub10ubm89bm8yOwoJCXNlZ0Fbbm9dLm51bT1yZXM7CgkJc2VnQVtub10uY29tbWl0PXRydWU7CgkJc2VnQVtubyoyKzFdLmNvbW1pdD1mYWxzZTsKCQlzZWdBW25vKjIrMl0uY29tbWl0PWZhbHNlOwoJCXJldHVybiByZXM7Cgl9ZWxzZXsKCQlpbnQgbT0obDIrcjIpLzI7CgkJcmVzPWZTZWdBVXBEYXRhKG5vKjIrMSxsLHIsbDIsbSxubzIsbm8zLGNvbW1pdCk7CgkJcmVzKz1mU2VnQVVwRGF0YShubyoyKzIsbCxyLG0rMSxyMixubzIsbm8zLGNvbW1pdCk7CgkJc2VnQVtub10ubnVtPXJlczsKCQlzZWdBW25vXS5jb21taXQ9dHJ1ZTsKCQlyZXR1cm4gcmVzOwoJfQp9CgppbnQgbWFpbigpIHsKCWZvcihpbnQgaT0wO2k8bWF4UztpKyspewoJCXNlZ0FbaV0ubnVtPTA7CgkJc2VnQVtpXS5ubz0tMTsKCQlzZWdBW2ldLmNvbW1pdD10cnVlOwoJfQoJaW50IG4sbTsKCWNpbj4+bj4+bTsKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWxvbmcgbG9uZyBpbnQgbnVtOwoJCWNpbj4+bnVtOwoJCWZTZWdBU2V0KDAsaSwwLFIsbnVtKTsKCX0KCWFyZWFTdW0ucHVzaF9iYWNrKDApOwoJbG9uZyBsb25nIGludCBzdW09MDsKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWxvbmcgbG9uZyBpbnQgbnVtOwoJCWNpbj4+bnVtOwoJCXN1bSs9bnVtOwoJCWFyZWFTdW0ucHVzaF9iYWNrKHN1bSk7Cgl9Cglmb3IoaW50IGk9MDtpPG1heFM7aSsrKXsKCQlhcmVhU3VtLnB1c2hfYmFjayhzdW0pOwoJfQoJCglmb3IoaW50IGk9MDtpPG07aSsrKXsKCQlpbnQgYzEsbCxyLHgseSx6OwoJCWNpbj4+YzE7CgkJaWYoYzE9PTApewoJCQljaW4+Png+Pnk+Pno7CgkJCUUyIGUyOwoJCQllMi5sPXktMTsKCQkJZTIucj15LTIrejsKCQkJZTIueD14LTE7CgkJCWUyLnk9eS0xOwoJCQllMi56PXo7CgkJCWw9eC0xOwoJCQlyPXgtMit6OwoJCQljb3B5RGF0YS5wdXNoX2JhY2soZTIpOwoJCQlmU2VnQVVwRGF0YSgwLGwsciwwLFIsbm8yLC0xLHRydWUpOwoJCQlubzIrKzsKCQl9ZWxzZXsKCQkJY2luPj5sPj5yOwoJCQlsLS07CgkJCXItLTsKCQkJbG9uZyBsb25nIGludCB0PWZTZWdBQ2FsY0FucygwLGwsciwwLFIsLTEsdHJ1ZSk7CgkJCWNvdXQ8PHQ8PGVuZGw7CgkJfQoJCS8vZm9yKGludCBpPTA7aTxtYXhTO2krKyl7CgkJCS8vY291dDw8IigiPDxpPDwiLCI8PHNlZ0FbaV0ubnVtPDwiKSI7CgkJLy99CgkvL2NvdXQ8PGVuZGw7Cgl9CglyZXR1cm4gMDsKfQ==