#include #include using namespace std; using ll = long long; #define rep(i,n) for (int i=0;i<(int)(n);i++) struct S{ ll val; ll sz; }; S op(S a,S b){ return {a.val+b.val,a.sz+b.sz}; } S e(){ return {0,0}; } int main(){ int n,q; cin>>n>>q; vector> p(n+q); rep(i,n){ int a; cin>>a; p.at(i)={a,2,i}; } rep(i,q){ int t,l,r,x; cin>>t>>l>>r>>x; l--; p.at(n+i)={x,1,l,r,i}; } sort(p.begin(),p.end(),greater>()); atcoder::segtree seg(n); vector ans(q); for(auto &v:p){ if(v.at(1)==1){ S s=seg.prod(v.at(2),v.at(3)); ans.at(v.at(4))=s.val-s.sz*v.at(0); }else{ seg.set(v.at(2),{v.at(0),1}); } } rep(i,q) cout<