# -*- coding: utf-8 -*- """ Created on Sat Aug 23 23:04:27 2025 @author: Tekyla """ N = int(input()) path = [list(map(int, input().split())) for _ in range(N-1)] path_tmp = [[] for _ in range(N+1)] for u,v in path: path_tmp[u].append(v) path_tmp[v].append(u) depth = [-1] * (N+1) st = [1] depth[1] = 0 while st: u = st.pop() for v in path_tmp[u]: if depth[v] < 0: depth[v] = depth[u]^1 st.append(v) # 初手の質問 # 奇数をクエリに投げる x = [path[i][0] if depth[path[i][0]]%2==1 else path[i][1] for i in range(N-1)] print("?", *x) S = input() ng = set(x) if S == "Yes": ng = set([i for i in range(1, N+1)]) - ng # ここから繰り返す while len(ng) < N-1: q_set = set() nq_set = set() x = [] for u,v in path: if u in q_set: x.append(u) elif v in q_set: x.append(v) elif u in nq_set: x.append(v) elif v in nq_set: x.append(u) elif u in ng: if v in ng: x.append(u) else: if len(q_set) < len(nq_set): q_set.add(v) x.append(v) else: nq_set.add(v) x.append(u) else: if len(q_set) < len(nq_set): q_set.add(u) x.append(u) else: nq_set.add(u) x.append(v) print("?", *x) S = input() if S == "Yes": ng.update(nq_set) else: ng.update(q_set) # こたえ ans = -1 for i in range(1, N+1): if i not in ng: ans = i print("!", ans)