#include <bits/stdc++.h>
using namespace std;
const int maxn = 2010;
vector<int> node[maxn];
queue<int> q;
int d[maxn];
void del(int u) {
  for (int i = 0; i < node[u].size(); i++) {
    int v = node[u][i];
    d[v]--;
    if (d[v] == 1) q.push(v);
  }
}
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n - 1; i++) {
    int u, v;
    cin >> u >> v;
    node[u].push_back(v);
    node[v].push_back(u);
    d[u]++, d[v]++;
  }
  for (int i = 1; i <= n; i++)
    if (d[i] == 1) q.push(i);
  while (q.size() > 1) {
    int u = q.front();
    q.pop();
    int v = q.front();
    q.pop();
    int lca;
    cout << "? " << u << " " << v << endl;
    cin >> lca;
    if (lca == u || lca == v) {
      cout << "! " << lca << endl;
      cout.flush();
      return 0;
    }
    del(u), del(v);
    cout.flush();
  }
  cout << "! " << q.front();
  cout.flush();
  return 0;
}
