#include<bits/stdc++.h>
using namespace std;
struct tree
{
int le,ri,fa,de;
}a[105];
int tans=0,fa[105]={0},ge[105],gene[105];
int main()
{
int n,u,v,x,y,kuan=0,an=0;
cin>>n;
a[1].fa=0,a[1].de=1,a[0].de=0;
for(int i=1;i<n;i++)
{
cin>>u>>v;
if(!a[u].le)
a[u].le=v;
else
a[u].ri=v;
a[v].fa=u;
a[v].de=a[u].de+1;
}
cin>>x>>y;
int dd=0;
for(int i=1;i<=n;i++)
{
if(dd<a[i].de) dd=a[i].de;
}
cout<<dd<<endl;
for(int i=1;i<=n;i++)
{
if(a[i].de==a[i-1].de) an++;
else an=0;
if(an>kuan) kuan=an;
}
cout<<kuan+1<<endl;
int i=1,m=1;
while(x!=0&&y!=0)
{
ge[i]=a[x].fa;
gene[m]=a[y].fa;
x=a[x].fa;
y=a[y].fa;
if(x!=0)
i++;
if(y!=0)
m++;
}
for(int j=1;j<=i;j++)
{
for(int o=1;o<=m;o++)
{
if(ge[j]==gene[o])
{
tans=j*2+o;
cout<<tans;
return 0;
}
}
}
}