#include<bits/stdc++.h>
#define MAXN 1000001
using namespace std;
int n,q;
int a[MAXN];
int main(){
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>a[i];
}
while(q>0){
q--;
int id;
cin>>id;
switch(id){
case 1:{
int l,r,c;
cin>>l>>r>>c;
for(int i=l;i<=r;i++){
a[i]=a[i]%c;
}
break;
}
case 2:{
int l,r,c;
cin>>l>>r>>c;
for(int i=l;i<=r;i++){
a[i]=a[i]/c;
}
break;
}
case 3:{
int l,r;
cin>>l>>r;
long long ans=0;
for(int i=l;i<=r;i++){
ans+=a[i];
}
cout<<ans<<endl;
break;
}
}
}
return 0;
}
//本代码如何减小时间?