#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; const ll INF=2e18; ll gcd(ll a, ll b){ if(b==0) return a; return gcd(b, a%b); } ll lcm(ll a, ll b){ if(a==INF || b==INF) return INF; ll g=gcd(a, b); if(a/g>=(INF+b-1)/b) return INF; else return a/g*b; } int n, sz; vector mx, sum, vlcm, lazy; ll a[1<<17]; void init(){ sz=1; while(sz=0; i--){ mx[i]=max(mx[2*i+1], mx[2*i+2]); sum[i]=sum[2*i+1]+sum[2*i+2]; vlcm[i]=lcm(vlcm[2*i+1], vlcm[2*i+2]); } } void eval(int k, int l, int r){ if(lazy[k]!=0){ mx[k]=vlcm[k]=lazy[k]; sum[k]=(r-l)*lazy[k]; if(k>n>>q; for(int i=0; i>a[i]; init(); for(int i=0; i>t>>l>>r; ll x; if(t<=2) cin>>x; if(t==1) update(l-1, r, x, 0, 0, sz); else if(t==2) update_gcd(l-1, r, x, 0, 0, sz); else if(t==3) cout<