n = int(input()) deg = [0]*n g = [[] for _ in range(n)] edges = [] for i in range(n): a,b = map(int,input().split()) a -= 1 b -= 1 deg[a] += 1 deg[b] += 1 g[a].append((b,i)) g[b].append((a,i)) edges.append((a,b,i)) used = [0]*n ans = [-1]*n q = [i for i in range(n) if deg[i] == 1] while q: v = q.pop() for c,i in g[v]: if used[i]: continue deg[c] -= 1 used[i] = 1 ans[i] = v if deg[c] == 1: q.append(c) edges.sort(key=lambda x:x[0]) for a,b,i in edges: if used[i]: continue if (deg[a] == 2 and deg[b] == 2) or deg[a] == 1: ans[i] = a deg[b] -= 1 else: ans[i] = b deg[a] -= 1 if sorted(ans) == list(range(n)): print("Yes") for i in ans: print(i+1) else: print("No")