#include #include #include #include #include #include #include #define REP(i,n) for(int i=0;i> q; vector a; vector b; ll l[1000]; int e[1000]; int cnt = 0; REP(i, q){ ans = 0; cin >> c >> x; if (c == 1){ a.push_back(x); } else if (c == 2){ //a.erase(a.begin() + x - 1); e[cnt] = x; cnt++; } else{ int j = 0; for (auto itr = a.begin(); itr != a.end();itr++){ a[j] += x; j++; } } b = a; sort(e, e + cnt); //cout << "check" << endl; REP(i, cnt){ b.erase(b.begin() + (e[i] - 1 - i)); //cout << "check" << endl; } sort(b.begin(), b.end()); for (auto itr = b.begin(); itr != b.end(); itr++){ if (*itr <= distance(itr, b.end())){ ans = *itr; } else{ break; } } if (ans <= 0){ ans = distance(lower_bound(b.begin(), b.end(), 0), b.end()); } l[i] = ans; } REP(i, q){ cout << l[i] << endl; } return 0; }