#include <bits/stdc++.h>
using namespace std;
int h;
bool vis[1 << 7];
int adj[1 << 7][4];
void ask(int u) {
  vis[u] = true;
  printf("? %d\n", u);
  fflush(stdout);
  scanf("%d", &adj[u][0]);
  for (int i = 1; i <= adj[u][0]; ++i) {
    scanf("%d", &adj[u][i]);
  }
}
int choose(int u) {
  for (int i = 1; i <= adj[u][0]; ++i) {
    if (!vis[adj[u][i]]) {
      return adj[u][i];
    }
  }
  return adj[u][1];
}
void solve() {
  memset(vis, 0, sizeof(vis));
  int u = 1;
  ask(u);
  int d;
  if (adj[u][0] == 1) {
    d = h;
  } else {
    vector<int> p1, p2;
    for (int v = choose(u);; v = choose(v)) {
      ask(v);
      p1.push_back(v);
      if (adj[v][0] == 1) {
        break;
      }
    }
    for (int v = choose(u);; v = choose(v)) {
      ask(v);
      p2.push_back(v);
      if (adj[v][0] == 1) {
        break;
      }
    }
    int l1 = p1.size();
    int l2 = p2.size();
    d = h - (l1 + l2) / 2;
    if (l1 > l2) u = p1[l1 - (l1 + l2) / 2 - 1];
    if (l1 < l2) u = p2[l2 - (l1 + l2) / 2 - 1];
  }
  while (d > 4) {
    vector<int> p1;
    for (int v = choose(u);; v = choose(v)) {
      ask(v);
      p1.push_back(v);
      if (adj[v][0] == 1) {
        break;
      }
    }
    int l1 = p1.size();
    int l2 = h - d;
    d = h - (l1 + l2) / 2;
    u = p1[l1 - (l1 + l2) / 2 - 1];
  }
  int v1, v2, v3, v4, v5, v6, v7;
  if (d > 1) {
    v1 = choose(u);
    ask(v1);
    if (adj[v1][0] == 2) {
      u = v1;
    }
  }
  if (d > 2) {
    v2 = choose(v1);
    ask(v2);
    if (adj[v2][0] == 2) {
      u = v2;
    }
    v3 = choose(v1);
    ask(v3);
    if (adj[v3][0] == 2) {
      u = v3;
    }
  }
  if (d > 3) {
    v4 = choose(v2);
    ask(v4);
    if (adj[v4][0] == 2) {
      u = v4;
    }
    v5 = choose(v2);
    ask(v5);
    if (adj[v5][0] == 2) {
      u = v5;
    }
    v6 = choose(v3);
    ask(v6);
    if (adj[v6][0] == 2) {
      u = v6;
    }
    v7 = choose(v3);
    if (adj[u][0] != 2) {
      u = v7;
    }
  }
  printf("! %d\n", u);
  fflush(stdout);
}
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    scanf("%d", &h);
    solve();
  }
  return 0;
}
