#include #include #include #include #define rep(i,n) for(i=0;i<(int)(n);i++) using namespace std; typedef long long ll; typedef pair p; typedef pair pp; typedef struct data{ int rate,q2; string s; data(int rrate=0,int qq2=0,string ss=""):rate(rrate),q2(qq2),s(ss){} bool operator<(const data& k)const{ return q2 dic; vector ans; int main(){ int i,j,cnt=0; string str; scanf("%d%d",&n,&q); while(q--){ scanf("%d",&i); switch(i){ case 1: cin>>str>>i; dic[str]=p(i,0); cnt++; break; case 2: scanf("%d",&i); n-=i; break; default: cin>>str>>i; n+=i; dic[str].second=1; } if(n tmp; vector ttmp; for(pair x:dic){ tmp.push_back(Data(x.second.first,x.second.second,x.first)); } sort(tmp.begin(),tmp.end()); rep(i,cnt-n) ttmp.push_back(pp(tmp[i].rate,tmp[i].s)); sort(ttmp.begin(),ttmp.end()); rep(i,cnt-n) ans.push_back(ttmp[i].second); dic.clear(); for(;i