#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
const int nx=515;
vector<int> ord;
vector<int> adj[nx];
void dfs (int u, int p)
{
ord.push_back(u);
for (auto v : adj[u]) if(v!=p) dfs(v, u);
}
int findEgg (int N, vector < pair < int, int > > bridges)
{
for (int i=1; i<=N; i++) adj[i].clear();
for (auto [a, b] : bridges) adj[a].push_back(b), adj[b].push_back(a);
ord.clear();
dfs(1, 1);
int l=0, r=ord.size()-1;
while (l<r)
{
int md=(l+r)/2;
vector<int> qu;
for (int i=0; i<=md; i++) qu.push_back(ord[i]);
if (query(qu)) r=md;
else l=md+1;
}
return ord[l];
}