#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
const int N = 600;
vector<vector<int>> g;
int tin[N], timer = 0;
void dfs(int u, int p) {
tin[++timer] = u;
for (auto &v : g[u]) {
if (v != p) {
dfs(v, u);
}
}
}
int findEgg (int N, vector<pair<int, int>> bridges)
{
auto n = N;
g.resize(n + 1);
for (auto [x, y] : bridges) {
g[x].push_back(y);
g[y].push_back(x);
}
dfs(1, -1);
int low = 1, high = n;
while (low <= high) {
int mid = (low + high) >> 1;
vector<int> nodes;
for (int i = 1; i <= mid; i++) nodes.push_back(tin[i]);
if (query(nodes) == 1) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return tin[high + 1];
}