#include<bits/stdc++.h>
using namespace std;
int c,q,sum,tp=1;
int a[200005][2];
multiset<int> s;
int main()
{
//freopen("x.in","r",stdin);
//freopen("x.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>c>>q;
while(q--)
{
int op;
cin>>op;
if(op==1)
{
int x;
cin>>x;
a[++sum][0]=1;
a[sum][1]=x;
s.insert(x);
}
if(op==2)
{
int y;
cin>>y;
if(sum==0)
continue;
int i=tp;
while(1)
{
if(a[i][1]-a[i][0]+1>y)
{
a[i][0]+=y;
break;
}
if(a[i][1]-a[i][0]+1==y)
{
tp=i+1;
s.erase(s.find(a[i][1]));
break;
}
y-=(a[i][1]-a[i][0]+1);
s.erase(s.find(a[i][1]));
i++;
tp=i;
}
}
if(op==3)
{
int z;
cin>>z;
int i=tp;
while(1)
{
if(a[i][1]-a[i][0]+1>=z)
{
cout<<a[i][0]+z-1<<"\n";
break;
}
z-=(a[i][1]-a[i][0]+1);
i++;
}
}
if(op==4)
{
set<int>::iterator it=s.end();
it--;
cout<<*it<<"\n";
}
}
return 0;
}