#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 1e5 + 5, LOG= 17;
long long n,q, par[MaxN][LOG], d[MaxN];
vector<long long> vt[MaxN];
void dfs(long long u)
{
for(long long v : vt[u])
{
if(v!=par[u][0])
{
par[v][0]=u;
d[v]=d[u]+1;
dfs(v);
}
}
}
long long lca(long long u, long long v)
{
if(d[u]<d[v]) swap(u,v);
for (long long i=LOG-1; i>=0; i--)
{
if(d[par[u][i]]>=d[v])
{
u=par[u][i];
}
}
if(u==v) return u;
for (long long i=LOG-1; i>=0; i--)
{
if(par[u][i]!=par[v][i])
{
u=par[u][i];
v=par[v][i];
}
}
return par[u][0];
}
void input()
{
cin >> n >> q;
for (long long i=1; i<n; i++)
{
long long u,v;
cin >> u >> v;
vt[u].push_back(v);
vt[v].push_back(u);
}
}
void solve()
{
dfs(1);
for (long long j=1; j<LOG; j++)
{
for (long long i=1; i<=n; i++)
{
par[i][j]=par[par[i][j-1]][j-1];
}
}
d[0]=-1;
for (long long i=1; i<=q; i++)
{
long long u,v;
cin >> u >> v;
cout << lca(u,v) << "\n";
}
}
int main()
{
input();
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgbG9uZyBsb25nIE1heE4gPSAxZTUgKyA1LCBMT0c9IDE3Owpsb25nIGxvbmcgbixxLCBwYXJbTWF4Tl1bTE9HXSwgZFtNYXhOXTsKdmVjdG9yPGxvbmcgbG9uZz4gdnRbTWF4Tl07CnZvaWQgZGZzKGxvbmcgbG9uZyB1KQp7CiAgICBmb3IobG9uZyBsb25nIHYgOiB2dFt1XSkKICAgIHsKICAgICAgICBpZih2IT1wYXJbdV1bMF0pCiAgICAgICAgewogICAgICAgICAgICBwYXJbdl1bMF09dTsKICAgICAgICAgICAgZFt2XT1kW3VdKzE7CiAgICAgICAgICAgIGRmcyh2KTsKICAgICAgICB9CiAgICB9Cn0KbG9uZyBsb25nIGxjYShsb25nIGxvbmcgdSwgbG9uZyBsb25nIHYpCnsKICAgIGlmKGRbdV08ZFt2XSkgc3dhcCh1LHYpOwoKCiAgICBmb3IgKGxvbmcgbG9uZyBpPUxPRy0xOyBpPj0wOyBpLS0pCiAgICB7CiAgICAgICAgaWYoZFtwYXJbdV1baV1dPj1kW3ZdKQogICAgICAgIHsKICAgICAgICAgICAgdT1wYXJbdV1baV07CiAgICAgICAgfQogICAgfQogICAgaWYodT09dikgcmV0dXJuIHU7CgogICAgZm9yIChsb25nIGxvbmcgaT1MT0ctMTsgaT49MDsgaS0tKQogICAgewogICAgICAgIGlmKHBhclt1XVtpXSE9cGFyW3ZdW2ldKQogICAgICAgIHsKICAgICAgICAgICAgdT1wYXJbdV1baV07CiAgICAgICAgICAgIHY9cGFyW3ZdW2ldOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBwYXJbdV1bMF07Cn0Kdm9pZCBpbnB1dCgpCnsKICAgIGNpbiA+PiBuID4+IHE7CiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8bjsgaSsrKQogICAgewogICAgICAgIGxvbmcgbG9uZyB1LHY7CiAgICAgICAgY2luID4+IHUgPj4gdjsKICAgICAgICB2dFt1XS5wdXNoX2JhY2sodik7CiAgICAgICAgdnRbdl0ucHVzaF9iYWNrKHUpOwogICAgfQp9CnZvaWQgc29sdmUoKQp7CiAgICBkZnMoMSk7CiAgICBmb3IgKGxvbmcgbG9uZyBqPTE7IGo8TE9HOyBqKyspCiAgICB7CiAgICAgICAgZm9yIChsb25nIGxvbmcgaT0xOyBpPD1uOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBwYXJbaV1bal09cGFyW3BhcltpXVtqLTFdXVtqLTFdOwogICAgICAgIH0KICAgIH0KICAgIGRbMF09LTE7CiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8PXE7IGkrKykKICAgIHsKICAgICAgICBsb25nIGxvbmcgdSx2OwogICAgICAgIGNpbiA+PiB1ID4+IHY7CiAgICAgICAgY291dCA8PCBsY2EodSx2KSA8PCAiXG4iOwogICAgfQoKfQppbnQgbWFpbigpCnsKICAgIGlucHV0KCk7CiAgICBzb2x2ZSgpOwp9