#include #define rep(i,a,b) for(int i=a;i=b;i--) #define fore(i,a) for(auto& i:a) #define ff first #define ss second #define all(a) begin(a),end(a) #define allr(a) rbegin(a),rend(a) #define pb push_back using namespace std; using ll =long long; using pii=pair; using pll=pair; using vi=vector; using vll=vector; template inline bool chmin(T& a,T b){return a>b?a=b,1:0;} template inline bool chmax(T& a,T b){return a inline int ub(vector &v,T c){return distance(begin(v),upper_bound(all(v),c));} int main(){ //cin.tie(0)->sync_with_stdio(0); int n; cin>>n; vi a(n),b(n); int pre=-1; rep(i,0,n){ cin>>a[i]>>b[i]; } vi ch(n,-1); vi p(n,-1); rrep(i,n-1,0){ if(b[i]==1){ pre=i; }else if(b[i]==2){ ch[pre]=i; p[i]=pre; } if(a[i]==1){ ch[i+1]=i; p[i]=i+1; } } vector ans; rep(i,0,n){ if(p[i]==-1){ int pos=i; while(pos!=-1){ ans.pb(pos); pos=ch[pos]; } } } rep(i,0,n){ cout<