#include<bits/stdc++.h> #include<atcoder/fenwicktree> using namespace std; using ll=long long; #define all(v) v.begin(),v.end() #define rall(v) v.rbegin(),v.rend() template<class T> bool chmax(T &a, T b){if (a < b){a = b;return true;} else return false;} template<class T> bool chmin(T &a, T b){if (a > b){a = b;return true;} else return false;} const int MAX=200'000; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N,Q; cin>>N>>Q; vector<int>L(Q+1); cin>>L[0]; vector<int>A(N); for(int i=0;i<N;i++)cin>>A[i]; atcoder::fenwick_tree<ll>fw1(MAX+1),fw2(MAX+1); for(int i=0;i<N;i++){ fw1.add(A[i],1); fw2.add(A[i],A[i]); } bool flag=false; for(int q=1;q<=Q;q++){ int t; cin>>t; if(t==1){ int l; cin>>l; fw1.add(l,1); fw2.add(l,l); L[q]=L[q-1]; }else if(t==2){ flag=true; int l,r; cin>>l>>r; cout<<fw1.sum(l,r+1)<<" "<<fw2.sum(l,r+1)<<"\n"; L[q]=L[q-1]; }else{ int m; cin>>m; L[q]=m; } } if(!flag)cout<<"Not Found!\n"; }