
#include<bits/stdc++.h>
using namespace std;
const int maxn = 105;
void swap(int buf[],int l,int r){
int left = l;
int right = r;
while(left<right){
int temp;
temp = buf[left];
buf[left] = buf[right];
buf[right] = temp;
left++;
right--;
}
}
int main(){
int buf[maxn];
int n,m;
int p,l,r,len,x;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%d",&buf[i]);
}
while(m--){
scanf("%d",&p);
if(p==1){
scanf("%d %d",&l,&r);
swap(buf,l,r);
}
else if(p==2){
scanf("%d %d %d",&l,&r,&len);
for(int i=l,j=r;i<=l+2,j<=r+2;i++,j++){
swap(buf,i,j);
}
}
else if(p==3){
scanf("%d %d %d",&l,&r,&x);
for(int i=l;i<=r;i++){
buf[i] = x;
}
}
else if(p==4){
scanf("%d %d",&l,&r);
sort(buf+l,buf+r+1);
}
else if(p==5){
scanf("%d %d",&l,&r);
int sum = 0;
for(int i=l;i<=r;i++){
sum = sum+buf[i];
}
printf("%d\n",sum);
}
}
return 0;
}