#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int i, j, k, l, m, n, o, p, q, r, s, t;
  cin >> n;
  vector<long long int> adj[n + 1];
  for (i = 0; i < n - 1; i++) {
    cin >> j >> k;
    adj[j].push_back(k);
    adj[k].push_back(j);
  }
  long long int ans = 0;
  long long int printed = 0;
  s = 0;
  while (s < n / 2) {
    s++;
    long long int u, v;
    long long int flag = 0;
    for (i = 1; i <= n; i++) {
      if (adj[i].size() == 1 && flag == 0) {
        u = i;
        flag = 1;
      } else if (adj[i].size() == 1) {
        v = i;
        break;
      }
    }
    cout << "? " << u << " " << v << endl;
    cin >> k;
    ans = k;
    if (k == u || k == v) {
      cout << "! " << k << endl;
      printed = 1;
      break;
    } else {
      for (i = 1; i <= n; i++) {
        vector<long long int> vv;
        if (i == u || i == v) {
          adj[i] = vv;
          continue;
        }
        for (j = 0; j < adj[i].size(); j++) {
          if (adj[i][j] == u || adj[i][j] == v) {
          } else {
            vv.push_back(adj[i][j]);
          }
        }
        adj[i] = vv;
      }
    }
  }
  if (printed == 0) {
    cout << "! " << ans << endl;
  }
  return 0;
}
