#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
int n;
vector<int>adj[n+50];
int node[n+50],a[n+50],tour=1;
void dfs(int u,int p){
node[u] = tour++;
a[node[u]] = u;
for(auto &v:adj[u]){
if(v==p)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){
n = N;
for(auto [u,v]:bridges){
adj[u].pb(v);
adj[v].pb(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 node[l];
}