from collections import deque N=int(input()) ans=[] dat = [[] for _ in range(N)] ab=[] b_d = [] for i in range(N): a,b=map(int, input().split()) ab.append((a,b)) if a==1: dat[i+1].append(i) elif b==2: b_d.append(i) else: dq = deque() dq.append(i) while dq: x = dq.pop() ans.append(x+1) for j in dat[x]: dq.append(j) if ab[x][1] == 1: for j in b_d: dq.append(j) b_d = [] for a in ans: print(a)