#include<iostream>
#include<cstdio>
#include<cmath>
#include<iomanip>
#include<cstring>
#include<string>
#include<algorithm>
#include<queue>
#include<stack>
#include<deque>
using namespace std;
deque<long long>a;
int n,m,k,s,yi;
int main(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++){
int ss;
cin>>ss;
a.push_back(ss);
}
sort(a.begin(),a.end());
for(int i=1;i<=m;i++){
cin>>s;
if(s==1){
int x;
cin>>x;
yi+=x;
int l=a.size();
int j=l-1;
while(!a.empty()){
j=a.size()-1;
if(a[j]+yi>k){
a.pop_back();
}else break;
}
}
if(s==2){
int x;
cin>>x;
yi-=x;
int l=a.size();
int j=0;
while(!a.empty()){
if(a[j]-yi<k){
a.pop_front();
}else break;
}
}
if(s==3)cout<<a.size()<<endl;
}
return 0;
}