#include #include #include #include #include #include #include #define REP(i,n) for(int i=0;i> q; vector a; vector b; ll l[100000]; 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); } else{ int j = 0; for (auto itr = a.begin(); itr != a.end();itr++){ a[j] += x; j++; } } b = a; 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; }