#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
int QQ=false;
const int N=5e3+50;
#define ii pair<int,int>
#define fr first
#define sr second
#define pb push_back
int tt,id,pth[N],cnt;
vector<int> adj[N];
void dfs(int u,int p){
pth[++cnt]=u;
for (auto x:adj[u]){
if (x==p) continue;
dfs(x,u);
}
}
int findEgg (int N, vector < pair < int, int > > bridges)
{
for (auto &[x,y]:bridges){
adj[x].pb(y);
adj[y].pb(x);
}
int l=1,r=N;
dfs(1,0);
while (l<r){
int mid=(l+r)>>1;
vector<int> v;
for (int i=l;i<=mid;i++) v.pb(pth[i]);
if (query(v)) r=mid;
else l=mid;
}
return l;
}