#include "highway.h"
#include <bits/stdc++.h>
using namespace std;
int n,a,b,m;
vector<int> dep;
vector<vector<int>> g;
void dfs(int c, int p){
for(auto a:g[c]){
if(a==p)continue;
dep[a]=dep[c]+1;
dfs(a,c);
}
}
void find_pair(int N, std::vector<int> U, std::vector<int> V, int A, int B) {
n=N;
a=A;
b=B;
m=U.size();
dep.assign(n,0);
g.resize(n);
for(int i=0;i<n;i++)g[i].clear();
for(int i=0;i<m;i++){
g[U[i]].push_back(V[i]);
g[V[i]].push_back(U[i]);
}
dfs(0,-1);
vector<int> upit(m,0);
long long x=ask(upit);
int d=x/(long long) a;
vector<int> grane;
for(int i=0;i<m;i++){
if((dep[V[i]]==d && dep[U[i]]==d-1) || (dep[U[i]]==d && dep[V[i]]==d-1))grane.push_back(i);
}
int l=0;
int r=grane.size()-1;
while(l<r){
int mid=l+(r-l)/2;
upit.assign(m,0);
for(int i=l;i<=mid;i++)upit[grane[i]]=1;
long long y=ask(upit);
if(x==y)l=mid+1;
else r=mid;
}
if(dep[U[grane[l]]]==d) answer(0,U[grane[l]]);
else answer(0,V[grane[l]]);
}