#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
vector<int> adj[520];
int tour[520], node[520], id;
void dfs(int u){
tour[u] = ++id;
node[id] = u;
for (auto & v : adj[u])
if (!tour[v])
dfs(v);
}
bool ask(int m){
vector<int> v;
for (int i = 1; i <= m; i++)
v.emplace_back(node[i]);
return query(v);
}
int findEgg (int N, vector < pair < int, int > > bridges)
{
for (int i = 1; i <= N; i++)
adj[1].clear();
for (auto &[u, v] : bridges)
adj[u].emplace_back(v), adj[v].emplace_back(u);
id = 0;
dfs(1);
int l = 1, r = N;
while(l < r){
int m = (l + r) >> 1;
if (ask(m))
r = m;
else
l = m + 1;
}
return node[l];
}