#include<bits/stdc++.h>
using namespace std;
int n;
int u,v;
int x,y;
int sum[105];
int maxn=1;
struct node{
int father;
int left,right;
int deep,vis;
}a[10005];
int lca(int s,int t){
a[s].vis=1;
while(a[s].father!=0){
s=a[s].father;
a[s].vis=1;
}
while(a[t].vis!=1){
t=a[t].father;
}
return t;
}
int main(){
scanf("%d",&n);
a[1].deep=1;
a[1].father=0;
for(int i=1;i<n;i++){
scanf("%d %d",&u,&v);
if(a[u].left==0){
a[u].left=v;
}else{
a[u].right=v;
}
a[v].father=u;
a[v].deep=a[u].deep+1;
if(a[v].deep>maxn) maxn=a[v].deep;
}
scanf("%d %d",&x,&y);
int num=0,num1=0;
int f=lca(x,y);
while(x!=f){
x=a[x].father;
num++;
}
while(y!=f){
y=a[y].father;
num1++;
}
num*=2;
for(int i=1;i<=n;i++){
sum[a[i].deep]++;
}
sort(sum+1,sum+1+100);
printf("%d\n%d\n%d",maxn,sum[100],num+num1);
return 0;
}