#include<bits/stdc++.h>
using namespace std;
unsigned long long maxn,a[101][101],n,t1,t2,l[101],t[101];
unsigned long long way1[110],way2[110],head1,head2;
bool u1,u2;
int w(unsigned long long y,unsigned long long z)
{
if(l[y]==0)
{
if(z>maxn)
{
maxn=z;
}
return 0;
}
for(int i=1;i<=l[y];i++)
{
w(a[y][i],z+1);
}
return 0;
}
int x(unsigned long long y,unsigned long long z)
{
if(l[y]==0)
{
return 0;
}
t[z]+=l[y];
for(int i=1;i<=l[y];i++)
{
x(a[y][i],z+1);
}
return 0;
}
int c(int y)
{
if(y==t1)
{
u1=1;
}
if(y==t2)
{
u2=1;
}
if(l[y]==0)
{
return 0;
}
if(!u1)
{
head1++;
way1[head1]=y;
}
if(!u2)
{
head2++;
way2[head2]=y;
}
for(int i=1;i<=l[y];i++)
{
c(a[y][i]);
}
if(!u1)
{
way1[head1]=0;
head1--;
}
if(!u2)
{
way2[head2]=0;
head2--;
}
return 0;
}
int main()
{
cin>>n;
for(int i=1;i<n;i++)
{
cin>>t1>>t2;
a[t1][++l[t1]]=t2;
}
cin>>t1>>t2;
w(1,1);
cout<<maxn<<endl;
t[1]=1;
x(1,2);
sort(t+1,t+maxn+1);
cout<<t[maxn]<<endl;
c(1);
for(int i=head1;i>=1;i--)
{
for(int j=1;j<=head2;j++)
{
if(way1[i]==way2[j])
{
cout<<(head1-i+1)*2+(head2-j+1);
return 0;
}
}
}
}