#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
using ll = long long;
const ll MAXN = 550;
vector<ll> edges[MAXN];
vector<ll> order;
void dfs(ll v, ll p) {
order.push_back(v);
for (ll u : edges[v]) {
if (u == p) continue;
dfs(u, v);
}
}
int findEgg (int n, vector<pair<int, int>> bridges) {
for (auto[v, u] : bridges) {
edges[v].push_back(u);
edges[u].push_back(v);
}
dfs(1, -1);
ll l = 0, r = n-1;
while (r > l) {
ll m = (l+r)/2;
vector<int> a;
for (ll i = l; i <= m; i++) a.push_back(order[i]);
if (query(a)) r = m;
else l = m+1;
}
return order[r];
}