#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
vector<int>adj[520];
int node[520],a[520],tour=1;
void dfs(int u,int p){
node[u] = tour++;
a[node[u]] = u;
for(auto &v:adj[u]){
if(v==p)continue;
if(node[u])continue;
dfs(v,u);
}
}
vector<int>calc(int r){
vector<int>ret;
for(int i=1;i<=r;i++)ret.push_back({a[i]});
return ret;
}
int findEgg (int N, vector < pair < int, int > > bridges){
memset(node,0,sizeof node);
memset(a,0,sizeof a);
tour=1;
for(int i=1;i<=N;i++)adj[i].clear();
for(auto [u,v]:bridges){
adj[u].push_back(v);
adj[v].push_back(u);
}
int l=1,r=N;
while(l<r){
int mid = (l+r)/2;
vector<int> vecask = calc(mid);
if(query(vecask))r=mid;
else l = mid+1;
}
return a[l];
}