#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n;
  cin >> n;
  vector<vector<long long>> adjlist(n + 1);
  vector<long long> degree(n + 1, 0);
  for (long long i = 1; i <= n - 1; i++) {
    long long u, v;
    cin >> u >> v;
    adjlist[u].push_back(v);
    adjlist[v].push_back(u);
    degree[u]++;
    degree[v]++;
  }
  queue<long long> q;
  for (long long i = 1; i <= n; i++) {
    if (degree[i] == 1) q.push(i);
  }
  long long ans = 0;
  while (q.size() > 1) {
    long long u = q.front();
    q.pop();
    long long v = q.front();
    q.pop();
    for (long long i : adjlist[u]) {
      degree[i]--;
      if (degree[i] == 1) q.push(i);
    }
    for (long long i : adjlist[v]) {
      degree[i]--;
      if (degree[i] == 1) q.push(i);
    }
    cout << "? " << u << " " << v << endl;
    cin >> ans;
    if (ans == -1) return 0;
    if (ans == u || ans == v) {
      cout << "! " << ans << endl;
      return 0;
    }
  }
  cout << "! " << q.front() << endl;
}
