#include<algorithm>
#include<iostream>
using namespace std;
int n,to[105],cnt,nxt[105],h[105],dep[105],size[105],x,y,ans1,ans2,fa[105];
void add(int a,int b)
{
to[++cnt]=b;
nxt[cnt]=h[a];
h[a]=cnt;
}
int dfs(int u)
{
dep[u]=dep[fa[u]]+1;
ans1=max(ans1,dep[u]);
size[dep[u]]++;
ans2=max(ans2,size[dep[u]]);
for(int i=h[u];i;i=nxt[i])
{
dfs(to[i]);
}
}
int main()
{
cin>>n;
for(int i=1;i<n;i++)
{
int u,v;
cin>>u>>v;
fa[v]=u;
add(u,v);
//add(v,u,1);
}
cin>>x>>y;
int xx=x,yy=y;
///dep[1]=1;
/// size[1]=1;
dfs(1);
cout<<ans1<<endl<<ans2<<endl;
int xy=abs(dep[x]-dep[y]);
for(int i=1;i<=xy;i++)
{
if(dep[x]>dep[y]) x=fa[x];
else if(dep[x]<dep[y]) y=fa[y];
}
while(x!=y)
{
x=fa[x],y=fa[y];
}
int ans3=(dep[xx]-dep[x])*2+dep[yy]-dep[x];
cout<<ans3;
return 0;
}