#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e5+5,Log=23;
int n,q,mx[N][Log],mn[N][Log],anc[N][Log],level[N],s[N];vector<pair<int,int>>adj[N];
void BuildAncestors(int node,int parent,int cost)
{
level[node]=level[parent]+1;
anc[node][0]=parent;
mx[node][0]=cost;
mn[node][0]=cost;
for(int o=1;o<Log;o++)
{
int p=anc[node][o-1];
anc[node][o]=anc[p][o-1];
mx[node][o]=max(mx[p][o-1],mx[node][o-1]);
mn[node][o]=min(mn[p][o-1],mn[node][o-1]);
}
for(auto it:adj[node])
{
if(it.first==parent)
{
continue;
}
BuildAncestors(it.first,node,it.second);
}
}
int KthAncestor(int node,int k)
{
for(int o=Log-1;o>=0;o--)
{
if(k&(1<<o))
{
node=anc[node][o];
}
}
return node;
}
int MX(int node,int k)
{
int ret=0;
for(int o=Log-1;o>=0;o--)
{
if(k&(1<<o))
{
ret=max(ret,mx[node][o]);
node=anc[node][o];
}
}
return ret;
}
int MN(int node,int k)
{
int ret=n+5;
for(int o=Log-1;o>=0;o--)
{
if(k&(1<<o))
{
ret=min(ret,mn[node][o]);
node=anc[node][o];
}
}
return ret;
}
int LCA(int u,int v)
{
if(level[u]<level[v])
{
swap(u,v);
}
u=KthAncestor(u,level[u]-level[v]);
if(u==v)
{
return u;
}
for(int i=Log-1;i>=0;i--)
{
if(anc[u][i]!=anc[v][i])
{
u=anc[u][i];
v=anc[v][i];
}
}
return anc[u][0];
}
void clear()
{
for(int i=0;i<=n;i++)
{
adj[i].clear();
memset(anc[i],0,sizeof anc[i]);
memset(mx[i],0,sizeof mx[i]);
fill(mn[i],mn[i]+Log,n+5);
}
}
int getMx(int u,int v)
{
int node=LCA(u,v);
return max(MX(u,level[u]-level[node]),MX(v,level[v]-level[node]));
}
int getMn(int u,int v)
{
int node=LCA(u,v);
return min(MN(u,level[u]-level[node]),MN(v,level[v]-level[node]));
}
signed main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>q;
clear();
for(int i=1;i<n;i++)
{
int a,b;cin>>a>>b;
adj[a].push_back({b,i});
adj[b].push_back({a,i});
}
BuildAncestors(1,1,0);
while(q--)
{
int a,b;cin>>a>>b;
cout<<getMx(a,b)<<' '<<getMn(a,b)<<'\n';
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKY29uc3QgaW50IE49MWU1KzUsTG9nPTIzOwppbnQgbixxLG14W05dW0xvZ10sbW5bTl1bTG9nXSxhbmNbTl1bTG9nXSxsZXZlbFtOXSxzW05dO3ZlY3RvcjxwYWlyPGludCxpbnQ+PmFkaltOXTsKdm9pZCBCdWlsZEFuY2VzdG9ycyhpbnQgbm9kZSxpbnQgcGFyZW50LGludCBjb3N0KQp7CiAgICBsZXZlbFtub2RlXT1sZXZlbFtwYXJlbnRdKzE7CiAgICBhbmNbbm9kZV1bMF09cGFyZW50OwogICAgbXhbbm9kZV1bMF09Y29zdDsKICAgIG1uW25vZGVdWzBdPWNvc3Q7CiAgICBmb3IoaW50IG89MTtvPExvZztvKyspCiAgICB7CiAgICAgICAgaW50IHA9YW5jW25vZGVdW28tMV07CiAgICAgICAgYW5jW25vZGVdW29dPWFuY1twXVtvLTFdOwogICAgICAgIG14W25vZGVdW29dPW1heChteFtwXVtvLTFdLG14W25vZGVdW28tMV0pOwogICAgICAgIG1uW25vZGVdW29dPW1pbihtbltwXVtvLTFdLG1uW25vZGVdW28tMV0pOwogICAgfQogICAgZm9yKGF1dG8gaXQ6YWRqW25vZGVdKQogICAgewogICAgICAgIGlmKGl0LmZpcnN0PT1wYXJlbnQpCiAgICAgICAgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgQnVpbGRBbmNlc3RvcnMoaXQuZmlyc3Qsbm9kZSxpdC5zZWNvbmQpOwogICAgfQp9CmludCBLdGhBbmNlc3RvcihpbnQgbm9kZSxpbnQgaykKewogICAgZm9yKGludCBvPUxvZy0xO28+PTA7by0tKQogICAgewogICAgICAgIGlmKGsmKDE8PG8pKQogICAgICAgIHsKICAgICAgICAgICAgbm9kZT1hbmNbbm9kZV1bb107CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIG5vZGU7Cn0KaW50IE1YKGludCBub2RlLGludCBrKQp7CiAgICBpbnQgcmV0PTA7CiAgICBmb3IoaW50IG89TG9nLTE7bz49MDtvLS0pCiAgICB7CiAgICAgICAgaWYoayYoMTw8bykpCiAgICAgICAgewogICAgICAgICAgICByZXQ9bWF4KHJldCxteFtub2RlXVtvXSk7CiAgICAgICAgICAgIG5vZGU9YW5jW25vZGVdW29dOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXQ7Cn0KaW50IE1OKGludCBub2RlLGludCBrKQp7CiAgICBpbnQgcmV0PW4rNTsKICAgIGZvcihpbnQgbz1Mb2ctMTtvPj0wO28tLSkKICAgIHsKICAgICAgICBpZihrJigxPDxvKSkKICAgICAgICB7CiAgICAgICAgICAgIHJldD1taW4ocmV0LG1uW25vZGVdW29dKTsKICAgICAgICAgICAgbm9kZT1hbmNbbm9kZV1bb107CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHJldDsKfQppbnQgTENBKGludCB1LGludCB2KQp7CiAgICBpZihsZXZlbFt1XTxsZXZlbFt2XSkKICAgIHsKICAgICAgICBzd2FwKHUsdik7CiAgICB9CiAgICB1PUt0aEFuY2VzdG9yKHUsbGV2ZWxbdV0tbGV2ZWxbdl0pOwogICAgaWYodT09dikKICAgIHsKICAgICAgICByZXR1cm4gdTsKICAgIH0KICAgIGZvcihpbnQgaT1Mb2ctMTtpPj0wO2ktLSkKICAgIHsKICAgICAgICBpZihhbmNbdV1baV0hPWFuY1t2XVtpXSkKICAgICAgICB7CiAgICAgICAgICAgIHU9YW5jW3VdW2ldOwogICAgICAgICAgICB2PWFuY1t2XVtpXTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gYW5jW3VdWzBdOwp9CnZvaWQgY2xlYXIoKQp7CiAgICBmb3IoaW50IGk9MDtpPD1uO2krKykKICAgIHsKICAgICAgICBhZGpbaV0uY2xlYXIoKTsKICAgICAgICBtZW1zZXQoYW5jW2ldLDAsc2l6ZW9mIGFuY1tpXSk7CiAgICAgICAgbWVtc2V0KG14W2ldLDAsc2l6ZW9mIG14W2ldKTsKICAgICAgICBmaWxsKG1uW2ldLG1uW2ldK0xvZyxuKzUpOwogICAgfQp9CmludCBnZXRNeChpbnQgdSxpbnQgdikKewogICAgaW50IG5vZGU9TENBKHUsdik7CiAgICByZXR1cm4gbWF4KE1YKHUsbGV2ZWxbdV0tbGV2ZWxbbm9kZV0pLE1YKHYsbGV2ZWxbdl0tbGV2ZWxbbm9kZV0pKTsKfQppbnQgZ2V0TW4oaW50IHUsaW50IHYpCnsKICAgIGludCBub2RlPUxDQSh1LHYpOwogICAgcmV0dXJuIG1pbihNTih1LGxldmVsW3VdLWxldmVsW25vZGVdKSxNTih2LGxldmVsW3ZdLWxldmVsW25vZGVdKSk7Cn0Kc2lnbmVkIG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CiAgICBjaW4+Pm4+PnE7CiAgICBjbGVhcigpOwogICAgZm9yKGludCBpPTE7aTxuO2krKykKICAgIHsKICAgICAgICBpbnQgYSxiO2Npbj4+YT4+YjsKICAgICAgICBhZGpbYV0ucHVzaF9iYWNrKHtiLGl9KTsKICAgICAgICBhZGpbYl0ucHVzaF9iYWNrKHthLGl9KTsKICAgIH0KICAgIEJ1aWxkQW5jZXN0b3JzKDEsMSwwKTsKICAgIHdoaWxlKHEtLSkKICAgIHsKICAgICAgICBpbnQgYSxiO2Npbj4+YT4+YjsKICAgICAgICBjb3V0PDxnZXRNeChhLGIpPDwnICc8PGdldE1uKGEsYik8PCdcbic7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==