#include using namespace std; #include int op(int a,int b){return a+b ;} int e(){return 0;} vectorchange; int main(){ int n,q,l0;cin>>n>>q>>l0; int cnt=0; multisetlst; for(int i=0;i>num; lst.insert(num); } for(int i=0;i>type; if(type==3){ int m;cin>>m; } else if(type==1){ int ll;cin>>ll; lst.insert(ll); } else{ int left,right;cin>>left>>right; cnt++; change.clear(); for(auto ite=lst.begin();ite!=lst.end();ite++){ change.push_back(*ite); } atcoder::segtreest(change); int ll=lower_bound(change.begin(),change.end(),left)-change.begin(); int rr=upper_bound(change.begin(),change.end(),right)-change.begin(); cout<