#include <bits/stdc++.h>
#define ll long long
#define el cout << '\n'
#define ii pair<int, int>
#define fi first
#define se second
using namespace std;
const int maxn = 512;
int euler[maxn + 10], timer = 0;
vector<int> adj[maxn + 10];
int query(vector<int> islands);
void dfs(int top, int par = -1)
{
euler[++timer] = top;
for (int next_top : adj[top])
{
if (next_top == par)
continue;
dfs(next_top, top);
}
}
bool check(int m)
{
vector<int> tree;
for (int i = 1; i <= m; i++)
tree.push_back(euler[i]);
return query(tree);
}
int findEgg(int N, vector<ii> brigdes)
{
for (ii pr : brigdes)
{
adj[pr.fi].push_back(pr.se);
adj[pr.se].push_back(pr.fi);
}
dfs(1);
int l = 1, r = N;
while (l < r)
{
int m = l + r >> 1;
if (check(m))
r = m;
else
l = m + 1;
}
return euler[l];
}